P ython p rogramming e xercises



Yüklə 1,51 Mb.
Pdf görüntüsü
səhifə89/124
tarix14.05.2023
ölçüsü1,51 Mb.
#113537
1   ...   85   86   87   88   89   90   91   92   ...   124
PythonProgrammingExercisesGentlyExplained

Solution Design 
The main challenge in this exercise isn’t converting letters to uppercase and lowercase but 
splitting the string up into individual words. We don’t need to use Python’s split() string method 
or the advanced regular expressions library. Look at the three example strings with the first letter of 
each word highlighted in Figure 35-1. 
Figure 35-1: Three strings with the first letter of every word highlighted. 
By looking at these examples, we can figure out that what makes a character in the string the first 
letter of a word is that the character is either the first character of the string (at index 0) or follows a 
non-letter character. Our title case string will have these letters in uppercase and every other letter 
lowercase. Non-letter characters remain as they are. 
Our function can start with a variable named titledText that holds the title case string form 
of the text parameter as we build it. Then a for loop can loop over all the indexes of the string. If 
the index is 0 (meaning it is at the start of the string) or the character at the previous index is not a 
letter, add the uppercase form of the character to titledText. Otherwise, add the lowercase form 
of the character to titledText. 
Note that Python’s upper() and lower() string methods have no effect on strings of non-
letter characters. The expression '42!'.upper() and '42!'.lower() both evaluate to '42!'. 
By the time the for loop has finished, titledText contains the complete title case form of 
text for the function to return. 


Python Programming Exercises, Gently Explained 
109 
Special Cases and Gotchas 
Title case not only means the first letter is in uppercase, but all other letters must be lowercase. 
It’s not enough to only make the first letter uppercase. You must also force the remaining letters to be 
lowercase. Converting the string 'mcCloud' to title case doesn’t result in 'McCloud' but rather 
'Mccloud'

There is also a boundary condition you should be aware of when looking at the ―previous index‖ 
in the for loop. You can easily calculate the previous index from the index i with the expression i - 
1
, but there’s a catch: when i is 0, this results in -1 which refers to the last index of the string. Your 
code must explicitly make sure you aren’t checking the previous index for the first index of the string
because there is no previous index in that case. 
Now try to write a solution based on the information in the previous sections. If you still have 
trouble solving this exercise, read the Solution Template section for additional hints. 

Yüklə 1,51 Mb.

Dostları ilə paylaş:
1   ...   85   86   87   88   89   90   91   92   ...   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