关于while的用法
import randomtimes = 3
secret = random.randint(1,10)
print('------------------我爱鱼C工作室------------------')
guess = 0
print("不妨猜一下小甲鱼现在心里想的是哪个数字:", end=" ")
while (guess != secret) and (times > 0):#有疑问,为什么不能直接 while (times > 0)?
temp = input()
if temp.isdigit():
guess = int(temp)
if guess == secret:
print("我草,你是小甲鱼心里的蛔虫吗?!")
print("哼,猜中了也没有奖励!")
else:
if guess > secret:
print("哥,大了大了~~~")
else:
print("嘿,小了,小了~~~")
if times > 1:
print("再试一次吧:", end='')
else:
print("机会用光咯T_T")
else:
print("抱歉,您的输入有误,请输入一个整数:", end='')
times = times - 1 # 用户每输入一次,可用机会就-1
print("游戏结束,不玩啦^_^")
有疑问,为什么不能直接 while (times > 0)?
如果你只有 times > 0 这个条件 没有 guess != secret 你在循环中如果猜对数字了 但是 times > 0 就会继续循环的
你应该还没学到break 如果有 break 合适的位置使用 就可以去掉 guess != secret
使用了break 就可以去掉了
import random
times = 3
secret = random.randint(1, 10)
print('------------------我爱鱼C工作室------------------')
guess = 0
print("不妨猜一下小甲鱼现在心里想的是哪个数字:", end=" ")
while times > 0:# 有疑问,为什么不能直接 while (times > 0)?
temp = input()
if temp.isdigit():
guess = int(temp)
if guess == secret:
print("我草,你是小甲鱼心里的蛔虫吗?!")
print("哼,猜中了也没有奖励!")
break
else:
if guess > secret:
print("哥,大了大了~~~")
else:
print("嘿,小了,小了~~~")
if times > 1:
print("再试一次吧:", end='')
else:
print("机会用光咯T_T")
else:
print("抱歉,您的输入有误,请输入一个整数:", end='')
times = times - 1# 用户每输入一次,可用机会就-1
print("游戏结束,不玩啦^_^")
或者你还有种办法就是 答对后直接设置 times == 0
import random
times = 3
secret = random.randint(1, 10)
print('------------------我爱鱼C工作室------------------')
guess = 0
print("不妨猜一下小甲鱼现在心里想的是哪个数字:", end=" ")
while times > 0:# 有疑问,为什么不能直接 while (times > 0)?
temp = input()
if temp.isdigit():
guess = int(temp)
if guess == secret:
print("我草,你是小甲鱼心里的蛔虫吗?!")
print("哼,猜中了也没有奖励!")
times = 0
else:
if guess > secret:
print("哥,大了大了~~~")
else:
print("嘿,小了,小了~~~")
if times > 1:
print("再试一次吧:", end='')
else:
print("机会用光咯T_T")
else:
print("抱歉,您的输入有误,请输入一个整数:", end='')
times = times - 1# 用户每输入一次,可用机会就-1
print("游戏结束,不玩啦^_^")
Twilight6 发表于 2020-6-8 23:22
如果你只有 times > 0 这个条件 没有 guess != secret 你在循环中如果猜对数字了 但是 times > 0 就会 ...
time会被减到0呀,这时候while time >0就是False的,while停止循环 橘猫啊啊 发表于 2020-6-8 23:30
time会被减到0呀,这时候while time >0就是False的,while停止循环
你没理解嘛?如果你第 1 次就猜对那么你times 会瞬间减到 0 ?你每次循环只会减 1
你可以直接去掉测试代码:
import random
times = 3
secret = random.randint(1,10)
print('------------------我爱鱼C工作室------------------')
guess = 0
print(secret,'<---正确答案')
print("不妨猜一下小甲鱼现在心里想的是哪个数字:", end=" ")
while (times > 0):#有疑问,为什么不能直接 while (times > 0)?
temp = input()
if temp.isdigit():
guess = int(temp)
if guess == secret:
print("我草,你是小甲鱼心里的蛔虫吗?!")
print("哼,猜中了也没有奖励!")
else:
if guess > secret:
print("哥,大了大了~~~")
else:
print("嘿,小了,小了~~~")
if times > 1:
print("再试一次吧:", end='')
else:
print("机会用光咯T_T")
else:
print("抱歉,您的输入有误,请输入一个整数:", end='')
times = times - 1 # 用户每输入一次,可用机会就-1
print("游戏结束,不玩啦^_^") Twilight6 发表于 2020-6-8 23:36
你没理解嘛?如果你第 1 次就猜对那么你times 会瞬间减到 0 ?你每次循环只会减 1
你可以直接 ...
刚去试验了一下。懂啦,嘻嘻,谢谢你{:5_106:} 橘猫啊啊 发表于 2020-6-8 23:43
刚去试验了一下。懂啦,嘻嘻,谢谢你
没事 客气了~
页:
[1]