[Tutor] Problem formatting raw_input
bob gailer
bgailer at gmail.com
Fri Oct 31 19:50:19 CET 2008
Peter Anderson wrote:
> Dj Gilcrease wrote:
>> The simple answer is to just use chr(int(inNum))
>>
>> though here is how I would do it
>>
>> def convert_string_to_int(strInt):
>> try:
>> return int(strInt)
>> except ValueError:
>> return 0
>>
>> def getNumbers(output):
>> inNum = raw_input("Please enter an ASCII number\n(33 - 126,
>> [Enter] to quit): ")
>> ascii_num = convert_string_to_int(inNum)
>> if ascii_num >= 33 and ascii_num <=126:
>> output.append(chr(ascii_num))
>> getNumbers(output)
I would avoid recursion. Save that for recursive algorithms. An ordinary
loop is easier to read/maintain and you will not run out of recursion
depth. Also give user a meaningful error message.
while True:
inNum = raw_input("Please enter an ASCII number\n(33 - 126,
[Enter] to quit): ")
if not inNum:
break
ascii_num = convert_string_to_int(inNum)
if ascii_num >= 33 and ascii_num <=126:
output.append(chr(ascii_num))
else:
print "Input must be an integer in range 33..126"
>>
>> if __name__ == '__main__':
>> print "This script converts a sequence of ASCII numbers"
>> print "into the string of text that it represents."
>> print
>> output = []
>> getNumbers(output)
>> print output
>>
>> Dj Gilcrease
>> OpenRPG Developer
>> ~~http://www.openrpg.com
> Dj,
>
> Thanks for the suggestions; both work perfectly. Can I ask a
> supplementary question please?
>
> In the def convert_string... function why do you include the "except
> ValueError: / return 0" clause?
try: must be followed by except or finally.
--
Bob Gailer
Chapel Hill NC
919-636-4239
When we take the time to be aware of our feelings and
needs we have more satisfying interatctions with others.
Nonviolent Communication provides tools for this awareness.
As a coach and trainer I can assist you in learning this process.
What is YOUR biggest relationship challenge?
More information about the Tutor
mailing list