python代码在while循环中有一个名称错误

时间:2015-10-17 21:34:20

标签: python

到目前为止,这是我的所有代码。如果我手动输入x,该功能是有效的。我也刚刚开始,所以关于如何通常使它更加pythonic的任何一般信息将是apreciated

def iseven(x):
    if x % 2 == 0:
        return x," is even"
    else:
    return x," is odd"
it = (1)
while it >= 0:
    number = input("What number: ")
    print iseven(number)
    new_num = input("another number? answer (Y/N):")
    if new_num == "Y":
        it += 1
    else:
        it = 0

这是错误     NameError:name' Y'未定义

2 个答案:

答案 0 :(得分:0)

只需更改一行:

<% %>

为:

new_num = input("another number? answer (Y/N):")

您还需要将new_num = raw_input("another number? answer (Y/N):") 更改为while it >= 0:,以便在提示时选择while it:即可退出循环。

答案 1 :(得分:0)

在处理常规输入并且更喜欢input的情况下,您可能希望避免使用raw_input

https://docs.python.org/2/library/functions.html#raw_input

这可以避免发生导致错误的eval - 它正在程序的范围内查找名为“Y”的内容。如果你键入“它”,例如,它会评估代码,这通常是不安全的(虽然我认为这里相当温和)。

https://docs.python.org/2/library/functions.html#eval