P ython p rogramming e xercises


E X E R C I S E # 3 2 : C O N V E R T S T R I N G S T O



Yüklə 1,51 Mb.
Pdf görüntüsü
səhifə81/124
tarix14.05.2023
ölçüsü1,51 Mb.
#113537
1   ...   77   78   79   80   81   82   83   84   ...   124
PythonProgrammingExercisesGentlyExplained

E X E R C I S E # 3 2 : C O N V E R T S T R I N G S T O
I N T E G E R S
convertStrToInt('42')
→ 
42 
To complement Exercise #31, ―Convert Integers to Strings‖, in this exercise we’ll convert strings 
of numeric digits into their integer equivalents. The most common use case for this is taking the string 
returned from, say, the input() function or a text file’s read() method and converting it to an 
integer to perform mathematical operations on it. You can use Python’s int() function to do this 
conversion, but in this exercise, you’ll recreate this function yourself. 
Exercise Description 
Write a convertStrToInt() function with a stringNum parameter. This function returns an 
integer form of the parameter just like the int() function. For example, 
convertStrToInt('42')
should return the integer 42. The function doesn’t have to work for 
floating-point numbers with a decimal point, but it should work for negative number values. 
Avoid using int()in your code, as that would do the conversion for you and defeat the purpose 
of this exercise. However, we do use int() with assert statements to check that your 
convertStrToInt()
function works the same as int() for all integers from -10000 to 9999: 
for i in range(-10000, 10000): 
assert convertStrToInt(str(i)) == i 
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. 
Solution Design 
The solution for this exercise is quite different than the int-to-string algorithm. Still, they are both 
similar in that they convert one digit and use a dictionary to map between string digits and integer 
digits: 
DIGITS_STR_TO_INT = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, 
'8': 8, '9': 9} 


Python Programming Exercises, Gently Explained 
99 
The function creates an integerNum variable to hold the integer form of stringNum as we 
build it. This variable starts with the value 0. Your code must also note if there is a minus sign at the 
start of the string, in which case
Our algorithm loops over the individual digits in the stringNum parameter, starting on the left 
and moving right. The code multiplies current integer in integerNum by 10 to ―move‖ all of these 
digits to the left by one place, then adds the current digit. 
For example, if we needed to convert the string '41096' to an integer, the code needs to carry 
out the following operations: 

integerNum
= 0 

integerNum
= (0 * 10) + 4 = 4 

integerNum
= (4 * 10) + 1 = 41 

integerNum
= (41 * 10) + 0 = 410 

integerNum
= (410 * 10) + 9 = 4109 

integerNum
= (4109 * 10) + 6 = 41096 
Before returning, we convert this integer to a negative number if the original string began with a 
minus sign. 

Yüklə 1,51 Mb.

Dostları ilə paylaş:
1   ...   77   78   79   80   81   82   83   84   ...   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