为什么Python这个简单的代码不工作?
问题描述:
x = raw_input("Write a number")
if x.isalpha():
print "Invalid!"
elif x%2==0:
print "The number you have written is EVEN"
elif x%2!=0:
print "The number you have written is ODD"
else:
print "Invalid!"
它应该检查数字是奇数还是偶数并打印出来。我的if语句检查raw_input是否是字母表,因为这不起作用。我的elif语句检查奇数或偶数。为什么Python这个简单的代码不工作?
答
返回值raw_input
始终是一个字符串。你需要将其转换为整数,如果你想使用它的%
操作:
x = raw_input("Write a number")
if x.isalpha():
print "Invalid!"
x = int(x)
相反的x.isalpha()
你可以用exception handling代替:如果
try:
x = int(raw_input("Write a number"))
except ValueError:
print 'Invalid!'
else:
if x % 2 == 0:
print "The number you have written is EVEN"
else:
print "The number you have written is ODD"
因为int()
将提高ValueError
该输入不是有效的整数。
答
raw_input
的返回值是一个字符串,但需要一个数字来进行奇偶校验测试。 你可以检查它是否是一个alpha字符串,如果不是,则将其转换为int。 例如:
xs = raw_input("Write a number")
if xs.isalpha():
print "Invalid!"
else:
xn = int(xs)
if xn % 2 == 0:
print "The number you have written is EVEN"
elif xn % 2 != 0:
print "The number you have written is ODD"
else:
print "The universe is about to end."
它看起来像OP刚刚开始学习Python。在这个阶段,他不应该了解'try','execpt','finally'等等。我是这样说的,因为我也很新...并且使用'raw_input'是大多数书籍/教程的构建块之一...... :) – Aditya 2013-02-16 17:53:31
@Aditya:这就是为什么我*建议*异常处理,并将其与该技术的教程部分相关联。 :-) – 2013-02-16 17:54:23