为什么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该输入不是有效的整数。

+0

它看起来像OP刚刚开始学习Python。在这个阶段,他不应该了解'try','execpt','finally'等等。我是这样说的,因为我也很新...并且使用'raw_input'是大多数书籍/教程的构建块之一...... :) – Aditya 2013-02-16 17:53:31

+2

@Aditya:这就是为什么我*建议*异常处理,并将其与该技术的教程部分相关联。 :-) – 2013-02-16 17:54:23

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."