【问题标题】:Loop is not breaking after adding break [duplicate]添加中断后循环没有中断[重复]
【发布时间】:2020-11-29 01:40:44
【问题描述】:

我正在尝试创建一个用户猜字母的函数;但我把它弄复杂了,现在,在猜对正确的字母后,循环不会中断。

di = {1:"a", 2:"b", 3:"c", 4:"d"}

number = random.randint(1,4)

while True:
    guess = input("Enter alpha")
     
    for i in range(1,len(di)+1):
        if guess in di[i]:
            if i == number:
                print("correct")
                break
             
            elif i > number:
                print("large")
            else:
                print("small") 

【问题讨论】:

  • 你的意思是“随机生成的字符”吗?字母是所有字符的集合。
  • @DYZ 我不确定这是链接问题的重复 - 我认为 OP 试图理解为什么他的 break 语句没有打破“while True”循环。

标签: python dictionary while-loop break


【解决方案1】:

break 打破了 for 循环。如果你想打破while循环,可以这样做:

import random

di = {1:"a", 2:"b", 3:"c", 4:"d"}

number = random.randint(1,4)

while True:
    guess = input("Enter alpha")
    status = False     
    for i in range(1,len(di)+1):
        if guess in di[i]:
            print(i,number)
            if i == number:
                print("correct")
                status = True
                break
             
            elif i > number:
                print("large")
            else:
                print("small") 
    if status:
        break

【讨论】:

  • 感谢分享知识。
  • @MayankS 当条件 i == number 满足时,for 循环中断,但 while 循环继续。为了中断 while 循环,在中断 for 循环之前将状态标志更改为 True。然后,一旦 for 循环中断,就会在 for 循环之后(在 while 循环内)检查状态,如果状态为 True,则它会中断 while 循环。
  • @rrr.code9 再次感谢您对此的解释。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-02-02
  • 2017-03-19
  • 2013-08-23
  • 2016-04-26
  • 2017-01-05
  • 2019-05-03
  • 2019-02-01
相关资源
最近更新 更多