请问这个while 1循环为什么continue多写一个或,再执行后下面的break就出不来了啊
import random
def game0_4():
answer = random.randint(1,50)
temp = input('来猜一下小甲鱼心里想的数字吧:')
guess = int(temp)
counts = 1
chance = 5
#如果一直没有答对,那么循环只能执行(chance-1)次,最后一次机会在循环外执行
while (guess != answer) and (counts < 5):
if guess > answer:
print('大了一点')
else:
print('小了一点')
chance -= 1
print('你还剩' + str(chance) +'次机会')
temp = input('再试一次吧:')
guess = int(temp)
counts += 1
if (guess == answer) and (counts <= 5):
print('答错了!')
else:
print('好可惜,5次机会用光了,游戏结束。')
#可不可以在最后再设置一下是否需要再玩一次,可以的话直接再开始,否则退出游戏。
if __name__ == '__main__':
while 1:
game0_4()
desire = input('还要再玩一次吗?(是/否)')
if desire == 'y'or'yes': #这里写一个或,下面break就出不来了
continue
if desire == 'n' or 'no' or '否' or '1':#这里可以写很多或,break可以出来
break
https://fishc.com.cn/thread-177875-1-1.html 感谢感谢{:10_254:} 本帖最后由 sunrise085 于 2020-8-17 12:02 编辑
逻辑运算符的优先级要低于 比较运算符 "==",所以你不能这样写
你这样写,相当于先进行比较运算,然后再进行逻辑运算,只要有一个or,那就不会执行到下面的if语句了
if desire in[ 'y','yes']: #这里想写几个就写几个,都放在列表中
continue
if desire in[ 'n' , 'no' , '否' , '1']:#这里也是想写几个就写几个,都放在列表中
break sunrise085 发表于 2020-8-17 12:00
逻辑运算符的优先级要低于 比较运算符 "==",所以你不能这样写
你这样写,相当于先进行比较运算,然后再进 ...
感谢感谢,这样写确实很方便
页:
[1]