P ython p rogramming e xercises



Yüklə 1,51 Mb.
Pdf görüntüsü
səhifə18/124
tarix14.05.2023
ölçüsü1,51 Mb.
#113537
1   ...   14   15   16   17   18   19   20   21   ...   124
PythonProgrammingExercisesGentlyExplained

Solution Design 
The ordinal suffix depends on the last two digits in the number: 

If the last two digits end with 11, 12, or 13 then the suffix is ―th.‖ 

If the number ends with 1, the suffix is ―st.‖ 

If the number ends with 2, the suffix is ―nd.‖ 

If the number ends with 3, the suffix is ―rd.‖ 

Every other number has a suffix of ―th.‖ 
Our code becomes much easier to write if we call the str() function to convert the integer 
value in number to a string first. Then you can use negative indexes in Python to find the last digit in 
this string. You can store the string form in a variable named numberStr. Just as numberStr[0] 
and numberStr[1] evaluate to the first and second character in numberStr, numberStr[-1] 
and numberStr[-2] evaluate to the last and second to last character in numberStr. Therefore, 
you can use numberStr[-1] to check if the last digit is 1, 2, or 3. 
To find the last two digits, you can use Python slices to get a substring from a string by specifying 
the start and end index of the slice. For example, numberStr[0:3] evaluates to the characters in 
numberStr
from index 0 up to, but not including, index 3. Enter the following in the interactive 
shell: 
>>> numberStr = '41096' 
>>> numberStr[0:3] 
'410' 
If numberStr were '41096', numberStr[0:3] evaluates to '410'. If you leave out the 
first index, Python assumes you mean ―the start of the string.‖ For example, numberStr[:3] means 
the same thing as numberStr[0:3]. If you leave out the second index, Python assumes you mean 
―the end of the string.‖ For example, numberStr[3:] means the same thing as 
numberStr[3:len(numberStr)]
or '96'. Enter the following into the interactive shell: 
>>> numberStr = '41096' 
>>> numberStr[:3] 
'410' 
>>> numberStr[3:] 
'96' 
You can combine slices and negative indexes. For example, numberStr[-2:] means the slice 
starts from the second to last character in numberStr and continues to the end of the string. This is 
how numberStr[-2:] becomes the shorthand for ―the last two characters in numberStr.‖ You 
can use this to determine if the number ends with 11, 12, or 13. Enter the following into the 
interactive shell: 
>>> numberStr = '41096' 
>>> numberStr[-2:] 
'96' 
>>> numberStr = '987654321' 
>>> numberStr[-2:] 
'21' 
If you need to compare a variable to multiple values, you can use the in keyword and put the 
values in a tuple. For example, instead of the lengthy condition numberStr[-2:] == '11' or 
numberStr[-2:] == '12' or numberStr[-2:] == '13'
, you can have the equivalent and 


Python Programming Exercises, Gently Explained 
21 
more concise numberStr[-2:] in ('11', '12', '13'). Enter the following into the 
interactive shell: 
>>> numberStr = '41096' 
>>> numberStr[-2:] in ('11', '12', '13') 
False 
>>> numberStr = '512' 
>>> numberStr[-2:] in ('11', '12', '13') 
True 
You’ll use a similar expression in this exercise’s solution. 

Yüklə 1,51 Mb.

Dostları ilə paylaş:
1   ...   14   15   16   17   18   19   20   21   ...   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