foelen
foelen
2020-03-14 09:17
采纳率: 100%
浏览 316

python小白有关退出while循环的提问

command=input("> ").lower()
while command!="quit":
    if command=="start":
        print("go")
    elif command=="stop":
        print("stop")
    elif command=="help":
        print("quit,start,stop")
    else:
        print("I can't understand")
    command=input("> ").lower
        #第一种情况:输入“quit”,直接不进入循环,程序结束
    #第二种情况:输入除“quit”外任意字符,再输入“quit”却不退出循环,而执行else

问题就是,我第一次输入“quit”以外的字符后,再输入“quit”程序不应该执行循环的判断语句,此时判断语句不成立,却不退出循环,这是为什么呢

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • weixin_46543738
    weixin_46543738 2020-03-14 10:58
    已采纳

    你循环里的lower没打括号,嗯我也是小白
    command=input("> ").lower()
    while command!="quit":
    if command=="start":
    print("go")
    elif command=="stop":
    print("stop")
    elif command=="help":
    print("quit,start,stop")
    else:
    print("I can't understand")
    command=input("> ").lower()

    点赞 评论
  • m0_46071259
    Dream starry sky 2020-03-14 11:02

    这个程序出bug的原因有些奇怪,可能是两个input语句所造成的。(具体原因我也不太清楚)
    我按你的思路对程序进行了一些修改,以下是代码:

    while True:
        command=input("> ").lower()
        if command=="start":
            print("go")
        elif command=="stop":
            print("stop")
        elif command=="help":
            print("quit,start,stop")
        elif command=="quit":
            break
        else:
            print("I can't understand")
    

    注:当while需要无限循环时,最好使用while True: 这样的写法,等到需要退出循环时可以使用break语句来退出

    点赞 评论

相关推荐