python基础--我原以为自己坚持专研一下就解决的,没想到还是要拜托大佬们了
这是python自学视频上的题目随机生成一个数,再输入一个数,两数作比较,
输入的数大,提示你猜得数字大了
输入的数小,提示你猜的数字小了
只有三次输入机会
我到底哪里错了,怎么运行后可以无限次输入,没有限制,只要输错就可以一直输入下去,,,脑壳要炸了
import random
secret = random.randint(1,10)#随机生成一个数
print("............我爱python................")
temp = input("不妨猜一下我现在心里在想的是哪个数字:")
guess = int(temp)
cs = 0#输入次数限制使用
if guess == secret: #第一次输入正确的数,直接结束
print("卧槽,你这么屌的吗,一次就对了")
print("狠狠哈哈")
else:
while guess != secret or cs == 3: #第一次输入不正确,进入循环
print("输入的不对哦,再输入一次")
temp = input("不妨猜一下我现在心里在想的是哪个数字:")
guess = int(temp)
cs = cs + 1# 次数的递增
if guess == secret: #输入的与随机的作比较
print("哎哟不错哟,竟然被你猜对了")
print("狠狠哈哈")
break
elif guess - secret < 0: #输入的与随机的作比较
print("你猜的数字小了")
continue
elif guess - secret > 0: #输入的与随机的作比较
print("你猜得数字大了")
continue
print("游戏结束!!!")
secret = random.randint(1,10)#随机生成一个数
print("............我爱python................")
temp = input("不妨猜一下我现在心里在想的是哪个数字:")
guess = int(temp)
cs = 0#输入次数限制使用
if guess == secret: #第一次输入正确的数,直接结束
print("卧槽,你这么屌的吗,一次就对了")
print("狠狠哈哈")
else:
while guess != secret and cs < 3: #第一次输入不正确,进入循环 这里改了就好了
print("输入的不对哦,再输入一次")
temp = input("不妨猜一下我现在心里在想的是哪个数字:")
guess = int(temp)
cs = cs + 1# 次数的递增
if guess == secret: #输入的与随机的作比较
print("哎哟不错哟,竟然被你猜对了")
print("狠狠哈哈")
break
elif guess - secret < 0: #输入的与随机的作比较
print("你猜的数字小了")
continue
elif guess - secret > 0: #输入的与随机的作比较
print("你猜得数字大了")
continue
print("游戏结束!!!") 第十行改动一下就好了
你 while 循环的条件用错了 ,应该用 and cs < 3 而不是 or cs == 3
因为 or 是只要你一个条件满足那么久返回 True ,则循环只要你不输入正确,就会无限循环下去,且此时短路了 or 右边的条件
还有这里可以小小改进下:elif 里面的 continue 可以去掉,是多余的,因为执行完命令时候已经就完成循环了,会直接开始下个循环,可以不用 continue
参考代码:
import random
secret = random.randint(1,10)#随机生成一个数
print("............我爱python................")
temp = input("不妨猜一下我现在心里在想的是哪个数字:")
guess = int(temp)
cs = 0#输入次数限制使用
if guess == secret: #第一次输入正确的数,直接结束
print("卧槽,你这么屌的吗,一次就对了")
print("狠狠哈哈")
else:
while guess != secret and cs < 3: #第一次输入不正确,进入循环
print("输入的不对哦,再输入一次")
temp = input("不妨猜一下我现在心里在想的是哪个数字:")
guess = int(temp)
cs = cs + 1# 次数的递增
if guess == secret: #输入的与随机的作比较
print("哎哟不错哟,竟然被你猜对了")
print("狠狠哈哈")
break
elif guess - secret < 0: #输入的与随机的作比较
print("你猜的数字小了")
elif guess - secret > 0: #输入的与随机的作比较
print("你猜得数字大了")
print("游戏结束!!!") Twilight6 发表于 2020-11-10 20:26
你 while 循环的条件用错了 ,应该用 and cs < 3 而不是 or cs == 3
因为 or 是只要你一个条件满足 ...
这么巧吗{:10_277:} Twilight6 发表于 2020-11-10 20:26
你 while 循环的条件用错了 ,应该用 and cs < 3 而不是 or cs == 3
因为 or 是只要你一个条件满足 ...
好的,谢谢大佬的讲解,我马上去改一下 昨非 发表于 2020-11-10 20:24
嗯嗯,谢谢大佬,我改了以后果然好了 马宝国异界纵横 发表于 2020-11-10 20:32
嗯嗯,谢谢大佬,我改了以后果然好了
解决了可以给设个【最佳答案】吗{:10_266:} 昨非 发表于 2020-11-10 20:38
解决了可以给设个【最佳答案】吗
奥里给 昨非 发表于 2020-11-10 20:38
解决了可以给设个【最佳答案】吗
嘶,好像楼数设错了
马宝国异界纵横 发表于 2020-11-10 20:55
嘶,好像楼数设错了
啊这{:10_245:}
页:
[1]