虽然循环菜单永远不会结束

时间:2019-02-27 17:02:17

标签: python python-3.x

我正在尝试做一个菜单,这很简单,但是我不明白为什么永远都不会结束循环,所以附上我的代码:

def main():
    menu_bool = False
    while(menu_bool == False):
        print("Menu:\n\t1. Copiar")
        x = input()
        if x == 1:
            print("You have selected option 1.")
            menu_bool = True

# Ejecutamos la función main
if __name__ == '__main__':
    main()

为什么当我按“ 1”时再次要求我选择一个选项?我已经声明了一个用于停止它的布尔变量menu_bool = True,但是我不知道为什么我的主要功能在循环中。

我尝试做global variable,但是它也不起作用。然后,这意味着我的menu_bool = True从未完成,但我不明白为什么。

menu_bool = False
def main():
    global menu_bool
    while(menu_bool == False):
        print("Menu:\n\t1. Copiar")
        x = input()
        if x == 1:
            print("You have selected option 1.")
            menu_bool = True

# Ejecutamos la función main
if __name__ == '__main__':
    main()

非常感谢您!

1 个答案:

答案 0 :(得分:1)

正如其他人所说,基本上,您是将字符串与整数进行比较。另外,我建议对布尔对象使用一些pythony,在这种情况下,请使用not而不是通过比较运算符进行显式比较。

def main():
    menu_bool = False
    while(not menu_bool):
        print("Menu:\n\t1. Copiar")
        x = input()
        if x == '1':
            print("You have selected option 1.")
            menu_bool = True