Python正在重复

Python正在重复,python,if-statement,command,Python,If Statement,Command,我今天在raspberry pi上启动了Python,我想创建密码保护菜单。除了在我输入一个选项后继续出现的选项外,它都可以工作 这是我的代码,有人能告诉我它有什么问题吗,请,我把它都保存在这里,这样你们就可以看到有什么问题了。就像我说的,我得到了第一个,shutdown或items,但当我输入1或2时,它会重复它,忽略if语句 ans = True while ans: print(""" 1. Shutdown 2. Items """) a

我今天在raspberry pi上启动了Python,我想创建密码保护菜单。除了在我输入一个选项后继续出现的选项外,它都可以工作

这是我的代码,有人能告诉我它有什么问题吗,请,我把它都保存在这里,这样你们就可以看到有什么问题了。就像我说的,我得到了第一个,shutdown或items,但当我输入1或2时,它会重复它,忽略
if
语句

ans = True

while ans:

    print("""

    1. Shutdown
    2. Items

    """)

    ans=input("Please enter a number: ")

    if ans == "1":
        exit()
    elif ans == "2":

        pa=input("Please Enter Password: ")

        if pa == "zombiekiller":

            print("""

            1. Pi password
            2. Return To Menu

            """)

        else:
                print("You Have Entered An Inccorect Password. Terminating Programm")
                import time
                time.sleep(1)
                exit()
退出
什么都不做。仅仅把它单独放在一行就可以取消对名称的引用,但不会调用它。也许你想叫它

exit()
要跳出
while
循环,还可以使用
break
,这是一条语句:

while True:
    print('Ending this loop')
    break

如果您使用的是python 2.7,
input
将尝试将您的输入解释为python表达式,返回数字
1
,而不是字符串
“1”
。始终使用
raw\u input
从用户处获取字符串


在Python3中,旧的
input
已被删除,旧的
raw\u input
已重命名为
input

oh ok,谢谢,但它仍然不会从选项中更改,也不会退出文件。我可以尝试一下,但我并不害怕添加loop@StevenSharman:您的脚本顶部有
而ans:
。:-)是的,我把它改成了true,它犯了一个错误,我使用了输入而不是原始输入,因为我的python版本是正确的;然后有两个问题:-)什么是
exit
定义为?对不起,你说的定义为是什么意思,就像我今天刚开始说的,所以我对特定的术语感到困惑Python交互式解释器确实将
exit
定义为一个函数,但它不适用于一般脚本(它会给你一个
NameError
)。我想您可能做了类似于
exit=sys.exit
或类似的操作。我需要添加哪个sys.exit,对吗?此外,我没有出现nameerror,所以我不知道我是否得到了它。我使用2.7我相信,谢谢,我添加了原始输入,而不是输入,但现在它停止了python文件,让我在python shell中键入而没有错误或错误anything@StevenSharman:您没有提供足够的信息。你们到底给了它什么输入,发生了什么?等等,让它工作了,但现在它说想终止程序,我当时还可以,谢谢