P ython p rogramming e xercises


Special Cases and Gotchas



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

Special Cases and Gotchas 
The convertStrToInt() function must be able to handle strings representing negative 
integers. To do this, check if stringNum[0] (the first character in the string) is the '-' dash 
character. If so, we can mark an isNegative variable to True (and False otherwise). Then we can 
remove this dash character by setting stringNum = stringNum[1:], replacing the string in 
stringNum
with a string of all the characters in stringNum after the first. 
At the end of the function, the function can return -integerNum if isNegative was set to 
True

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. 
Solution Template 
Try to first write a solution from scratch. But if you have difficulty, you can use the following 
partial program as a starting place. Copy the following code from https://invpy.com/convertstrtoint-
template.py and paste it into your code editor. Replace the underscores with code to make a working 
program: 
def convertStrToInt(stringNum): 
# This dictionary maps string digits to single 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} 
# Make a note whether the number is negative or not, and make 
# integerNum positive for the rest of the function's code: 
if stringNum[0] == '-': 
isNegative = True 


Python Programming Exercises, Gently Explained 
100 
stringNum = stringNum[1:]
# Remove the negative sign.
else: 
isNegative = False 
# integerNum holds the converted integer, and starts off at 0: 
integerNum = 0 
# Loop over the digits in the string from left to right: 
for i in range(len(stringNum)): 
# Get the integer digit from the string digit: 
digit = DIGITS_STR_TO_INT[stringNum[i]] 
# Add this to the integer number: 
integerNum = (integerNum * 10) + digit 
# If the number was originally negative, make the integer 
# negative before returning it: 
if isNegative: 
return -integerNum 
else: 
return integerNum 
The complete solution for this exercise is given in Appendix A and 
https://invpy.com/convertstrtoint.py. You can view each step of this program as it runs under a debugger 
at https://invpy.com/convertstrtoint-debug/


101 

Yüklə 1,51 Mb.

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