P ython p rogramming e xercises


E X E R C I S E # 1 0 : F I N D A N D R E P L A C E



Yüklə 1,51 Mb.
Pdf görüntüsü
səhifə26/124
tarix14.05.2023
ölçüsü1,51 Mb.
#113537
1   ...   22   23   24   25   26   27   28   29   ...   124
PythonProgrammingExercisesGentlyExplained

E X E R C I S E # 1 0 : F I N D A N D R E P L A C E
findAndReplace('The fox', 'fox', 'dog')
→ 
'The dog' 
Find-and-replace is a standard feature in text editors, IDEs, and word processor software. Even 
the Python language comes with a replace() string method since programs often use it. In this 
exercise, you’ll reimplement this common string operation. 
Exercise Description 
Write a findAndReplace() function that has three parameters: text is the string with text to 
be replaced, oldText is the text to be replaced, and newText is the replacement text. Keep in mind 
that this function must be case-sensitive: if you are replacing 'dog' with 'fox', then the 'DOG' in 
'MY DOG JONESY'
won’t be replaced.
These Python assert statements stop the program if their condition is False. Copy them to 
the bottom of your solution program. Your solution is correct if the following assert statements’ 
conditions are all True: 
assert findAndReplace('The fox', 'fox', 'dog') == 'The dog' 
assert findAndReplace('fox', 'fox', 'dog') == 'dog' 
assert findAndReplace('Firefox', 'fox', 'dog') == 'Firedog' 
assert findAndReplace('foxfox', 'fox', 'dog') == 'dogdog' 
assert findAndReplace('The Fox and fox.', 'fox', 'dog') == 'The Fox and dog.' 
Try to write a solution based on the information in this description. If you still have trouble 
solving this exercise, read the Solution Design and Special Cases and Gotchas sections for 
additional hints. 
Prerequisite concepts: slices, indexes, len(), augmented assignment operator 
Solution Design 
While Python comes with several string methods, such as replace(), find(), and index(), 
that could do this exercise for us, we’ll do the finding and replacing on our own. 
At the beginning of the function, create a replacedText variable to hold the text with 
replacements. It starts as a blank string. We’ll write code that copies the text in the text parameter to 
replacedText
, except for where it finds instances of oldText, in which case newText is copied 


Python Programming Exercises, Gently Explained 
31 
to replacedText. 
Create a while loop starts a variable named i at 0 and then keeps looping until i reaches the 
length of the text string argument. This i variable points to an index in the text string. The code 
inside the loop increases i by the length of oldText if it has found an instance of oldText in 
text
. Otherwise the code inside the loop increases i by 1 so it can examine the next character in 
text

The code inside the loop can examine the slice text[i:i + len(oldText)] to see if it 
matches oldText. In that case, we append newText to replacedText and increase i by 1. If not, 
we append just the text[i] character to replacedText and increase i by len(oldText). By 
the time i reaches the end of text, the replacedText variable contains the finished string. 
Figure 10-1 shows each step of this process if we were to call findAndReplace('A fox.', 
'fox', 'dog')

Figure 10-1: Replacing 'fox' with 'dog' in 'A fox.' 
Python has augmented assignment operators such as += and *=. These are shortcuts for assignment 
statements that modify the value in a variable. Python has augmented assignment operators for several 
operators: 

Yüklə 1,51 Mb.

Dostları ilə paylaş:
1   ...   22   23   24   25   26   27   28   29   ...   124




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin