【发布时间】:2021-12-30 23:06:06
【问题描述】:
您好,所以我在编程方面完全是个菜鸟,为了加强我的实践,我尝试做一个刽子手项目(不是使用 GUI 的典型刽子手)。 先决条件 字典、元组、循环(包括循环的嵌套)、if-else 语句和 python 中的随机函数 面临的问题 while 循环不起作用。它运行完美,直到结束,然后它不会退出 while 循环和(打印耶!!你赢了)。它停留在while循环中(我已经设置了一个无限循环)并说“输入一个字符”并拒绝退出循环。请调试我的代码或建议对其进行更改,以便在猜到正确的单词后退出 while 循环。为方便起见,我只上传代码的症结(我遇到问题的地方,请随时在您的控制台中运行代码)
import random
store=""
d=input("ENTER START: ")
p=d.lower()
sb={"fruits":("strawberry","banana","apple","orange","guava","grapes"),"colours":("red","blue","orange","brown","yellow"),"cars":("maruti","nano","ferrrari","audi","jaguar")}
keys=list(sb)
for i in range(len(keys)):
f=random.randint(0,len(keys)-1)
j=keys[f]
q=sb[j]
r=random.randint(0,len(q)-1)
x=q[r]
print(x)
if p!="start":
cc=input("Enter the CORRECT command in pls: ")
store=cc.lower()
if p=="start" or cc=="start":
print("HINT 1:ok so I have chosen",j+"!!!\n and you have",len(x)+2,"chances to guess")
for i in range(len(x)+2):
term=x
query = []
flag = 0
chance=0
while True:
query.append(input("Enter the letter: ").lower())
output = " ".join([x if x in query else "_" for x in term.lower()])
print(output)
flag += 1 if query[-1] in term.lower() else 0
chance+=1
query = list(set(query))
if flag == len(set(term)) or chance==len(term)+2:
print("YIKES!!you won!!!")
break
【问题讨论】:
标签: python random while-loop infinite-loop break