I'm trying to write a code to edit a list and make it a palindrome.
Everything is working except my input still gives me one error. When I enter a non-int into get_number_2
, it crashes.
def get_number():
num = raw_input("Please enter number between 100,000 and 1,000,0000: ")
if not num.isdigit():
print "---------------------------"
print "Invalid input: numbers only"
print "---------------------------"
my_main()
else:
return num
def get_number_2(n):
num = input("Please confirm the number you have entered: ")
if num != int(n):
print "--------------------"
print "Entries do not match"
print "--------------------"
my_main()
else:
return num
I use the input from get_number_2
for the rest of the code as get_number
doesn't work when I check if its between two numbers.
Is there any way i can validate if input is an int in get_number_2
so that I can get rid of get_number
?
You can't do
num != int(n)
because it will attempt to callint(n)
which is invalid ifn
is not in fact an integer.The proper way to do this is to use
try
andexcept
Edit: Also in Python 2.x please use
raw_input()
instead ofinput()
.input()
gives very odd results if you don't know what it's doing.Write program that handles exception. If user enters not valid integer, it throws
ValueError
exception:you must update your question like this:
You also should use
raw_input
andint(num)
:Notes:
n
is an int, or to check this you could change the if to:if not num.isdigit() or not n.isdigit() or int(num) != int(n)
.isdigit
we check if it is an integer before really converting it toint
.