错在哪里?快喝醉了。
import randomsecret = random.randint(1,13)
times = 3
print("==========Pyhon004改进游戏02========")
temp = input("输入1~~13,猜对过关,猜错喝酒!(最多3次机会)")
guess = int(temp)
while (guess != secret) and (times>0):
if guess == secret:
print("恭喜你答对了")
else:
if guess > secret:
print("哥,大了大了~~~")
else:
print("哟,小了小了~~~")
times = times - 1
if times > 0:
print("最后第"+str(times)+"次机会")
temp =input("请重新输入")
guess +int(temp)
else:
print("喝酒~~~")
print("厉害!下一位")
==========Pyhon004改进游戏02========
输入1~~13,猜对过关,猜错喝酒!(最多3次机会)2
哟,小了小了~~~
最后第2次机会
请重新输入12
哟,小了小了~~~
最后第1次机会
请重新输入13
哟,小了小了~~~
喝酒~~~
厉害!下一位
最后一次输入是正确的,为什么还有哟,小了小了~~~
喝酒~~~
应该是等号进行赋值,否则guess的值无法更新
第十九行 guess + int(temp) 应该改成 guess = int(temp)
首先是逻辑问题
while条件是guess != secret时才会触发,那么while 中的 guess == secret永远不会触发
不论最后猜对还是没猜对,都会触发“喝酒~~~”“厉害!下一位”
另外第十九行guess +int(temp) 需要修改为guess =int(temp)
我们这里修改一下逻辑,如果三次内猜对,触发“厉害!下一位”
如果三次都猜错了,触发“喝酒~~~”
import random
secret = random.randint(1,13)
times = 3
print("==========Pyhon004改进游戏02========")
temp = input("输入1~~13,猜对过关,猜错喝酒!(最多3次机会)")
guess = int(temp)
while (guess != secret) and (times>0): #不相等时进入while
if guess > secret:
print("哥,大了大了~~~")
else:
print("哟,小了小了~~~")
times = times - 1
if times > 0:
print("最后第"+str(times)+"次机会")
temp =input("请重新输入")
guess =int(temp)
else:
print("机会都用完啦,喝酒吧~~~")
if guess == secret:
print("恭喜你答对了")
print("厉害!下一位")
if guess == secret:
print("恭喜你答对了")
改为
if guess == secret:
print("恭喜你答对了")
break
temp =input("请重新输入")
guess +int(temp)
改为
temp =input("请重新输入")
guess = int(temp)
楼主的代码在键盘输入的部分存在一些重复,我给做了一些优化
import random
secret = random.randint(1,13)
times = 3
print("==========Pyhon004改进游戏02========")
for x in range(times , 0 , -1):
guess = int(input("输入1~~13 ,猜对过关,猜错喝酒!(最多3次机会) : "))
if guess == secret:
print("恭喜你答对了")
print("厉害!下一位")
break
else:
if guess > secret:
print("哥,大了大了~~~")
else:
print("哟,小了小了~~~")
if x > 1:
print("还剩下" , x - 1 ,"次机会")
else:
print("喝酒~~~") 学习第1天。感谢各位大神。
页:
[1]