python logic

SS sami.strat at gmail.com
Fri Sep 1 09:30:43 EDT 2017


Check out the following simple code:

#!/bin/python

print "1 - echo 1"
print "2 - echo 2"

answer = input("Enter your choice - ")

if answer == 1:
  print "1"
elif answer == 2:
  print "2"
else:
  print "Invalid choice!"


The else statement noted above works fine for numeric values other then 1 or 2.  But if a user types in alphanumeric data (letters) into this, it blows up.  Check out the following:

[root at ansi ~]$ ./trash
1 - echo 1
2 - echo 2
Enter your choice - 3
Invalid choice!

[root at ansi ~]$ ./trash
1 - echo 1
2 - echo 2
Enter your choice - r
Traceback (most recent call last):
  File "./trash", line 6, in <module>
    answer = input("Enter your choice - ")
  File "<string>", line 1, in <module>
NameError: name 'r' is not defined

I would expect the same behavior from both runs.  Why does Python differ in the way it treats a character in that program?  Finally, how to accomodate for such (how to fix)?

TIA



More information about the Python-list mailing list