while循环不会继续if语句

时间:2012-06-05 00:41:35

标签: python loops

我是Python的新手,我正在试图找出为什么我的程序不会超过初始输入。一切正常,直到我输入一个数字。然后它就会回到程序的开头。循环语句如下所示:

 loop = 1
 choice = 0
 while loop == 1:
     choice = menu()
     if choice == 1:
        (List of commands)
     elif choice == 2:
        (List of commands)  etc...
     elif choice == 5:
        loop = 0

我是一个大菜鸟所以我敢打赌这是一个荒谬的问题,但我只是难倒!

2 个答案:

答案 0 :(得分:0)

TypeError: can't multiply sequence by non-int of type 'str'意味着你像'5'*'5'一样,它们是str但不是int 5 * 5。

'1'+'1' = '11'1 + 1 = 2

因此,您应该将 str 更改为 int

答案 1 :(得分:0)

NO_ACTION, SMTH_ACTION, SMTH_OTHER_ACTION, EXIT_ACTION = 0,1,2,3
choice = NO_ACTION
while True:
    choice = int(menu()) # python strong typed!

    if choice is SMTH_ACTION:
        (List of commands)

    elif choice is SMTH_OTHER_ACTION:
        (List of commands)  etc...

    elif choice is EXIT_ACTION:
       break

无需退出标记 - 使用break关键字。 不要使用“幻数” - 定义常量。