P ython p rogramming e xercises


E X E R C I S E # 3 5 : T I T L E C A S E



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

E X E R C I S E # 3 5 : T I T L E C A S E
getTitleCase('cat dog moose')
→ 
'Cat Dog Moose' 
In this exercise, you’ll have to convert a string to title case where every word in the string begins 
with an uppercase letter. The remaining letters in the word are in lowercase. Title case is a slight 
increase in complexity compared to Exercise #34, ―Uppercase Letters‖, so I advise that you solve that 
exercise before attempting this one. 
Exercise Description 
Write a getTitleCase() function with a text parameter. The function should return the title 
case form of the string: every word begins with an uppercase and the remaining letters are lowercase. 
Non-letter characters separate words in the string. This means that 'Hello World' is considered to 
be two words while 'HelloWorld' is considered to be one word. Not only spaces, but all non-letter 
characters can separate words, so 'Hello5World' and 'Hello@World' also have two words. 
Python’s upper() and lower() string methods return uppercase and lowercase forms of the 
string, and you can use these in your implementation. You may also use the isalpha() string 
method, which returns True if the string contains only uppercase or lowercase letter characters. 
However, you may not use Python’s title() string method, as that would defeat the purpose of the 
exercise. Similarly, while you need to split up a string into individual words, don’t use Python’s 
split()
string method. 
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 getTitleCase('Hello, world!') == 'Hello, World!' 
assert getTitleCase('HELLO') == 'Hello' 
assert getTitleCase('hello') == 'Hello' 
assert getTitleCase('hElLo') == 'Hello' 
assert getTitleCase('') == '' 
assert getTitleCase('abc123xyz') == 'Abc123Xyz' 
assert getTitleCase('cat dog RAT') == 'Cat Dog Rat' 
assert getTitleCase('cat,dog,RAT') == 'Cat,Dog,Rat' 
import random 
random.seed(42) 
chars = list('abcdefghijklmnopqrstuvwxyz1234567890 ,.') 


Python Programming Exercises, Gently Explained 
108 
for i in range(1000): 
random.shuffle(chars) 
assert getTitleCase(''.join(chars)) == ''.join(chars).title() 
The code in the for loop generates random strings and checks that your getTitleCase() 
function returns the same string that Python’s built-in title() string method does. This allows us 
to quickly generate 1,000 test cases for your solution. 
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: strings, for loops, range(), len(), upper(), isalpha(), lower() 

Yüklə 1,51 Mb.

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