Python循环语句出问题了啊
temp = input("猜数")guess = int(temp)
while guess != 8:
temp = input("重新输入")
guess = int(temp)
if guess == 8:
print("对了")
else:
if guess > 8:
print("大了")
else:
print("小了")
print("游戏结束")
为什么当我把第五行的 guess = int(temp)删除后 ,不管输入什么一直循环“大了”或者“小了” 因为你的guess 还是第2行的值。
第5行是从第4行取值,你删了,guess上哪里取值呢? 你把第五行的删了之后,guess就一直都是你一开始赋值的那个数,不会变化了(第二行)。
你在程序里重新输入的值是temp,而不是guess。
本帖最后由 sunrise085 于 2018-12-13 11:00 编辑
若是把第五行删除,那么在while循环中guess的值没有改变过,一直是开始时在第二行的赋值,guess的值没有更新,所以就在while循环中死循环了。
此外,你的程序其实有点问题,若是第一次就输入8,那么只会输出“游戏结束”,而不会输出“对了”。
while循环,是不需要在循环体里面判断是否符合while循环条件的。(在此例子中则是不需要在循环体中判断guess==8,因为若是guess==8,则循环会自动结束)
所以我帮你修改了一下程序(我没有运行,不知道标点符号有没有写错的,你试试吧)
temp = input("猜数")
guess = int(temp)
while guess != 8:
if guess > 8:
print("大了")
else:
print("小了")
temp = input("重新输入")
guess = int(temp)
print("对了")
print("游戏结束") heidern0612 发表于 2018-12-13 08:04
你把第五行的删了之后,guess就一直都是你一开始赋值的那个数,不会变化了(第二行)。
你在程序里重新输 ...
谢谢 懂啦 sunrise085 发表于 2018-12-13 10:57
若是把第五行删除,那么在while循环中guess的值没有改变过,一直是开始时在第二行的赋值,guess的值没有更 ...
还可以 将其直接放到循环外,学习了。 sunrise085 发表于 2018-12-13 10:57
若是把第五行删除,那么在while循环中guess的值没有改变过,一直是开始时在第二行的赋值,guess的值没有更 ...
我刚试了一下没问题。
但当我加入了循环控制以后就不行了,最后一次不管对错都会输出 “对了”“游戏结束”和我想象中的不一样
如果再加上随机数的话,我都没法确定是不是正确的了。 sunrise085 发表于 2018-12-13 10:57
若是把第五行删除,那么在while循环中guess的值没有改变过,一直是开始时在第二行的赋值,guess的值没有更 ...
然后这是我的解决方案:
temp = input("不妨猜一下小甲鱼现在心里想的数字是哪一个数字:")
guess = int(temp)
num= 3
while num and guess!=8:
temp = input("不对不对 再来一次:")
guess = int(temp)
num= num-1
if guess > 8:
print("哥,大了大了")
else:
print("小了小了")
if guess == 8:
print("你是小甲鱼心里的蛔虫吗!")
print("猜对了也没奖励!")
print("游戏结束,不玩了")
量子空间 发表于 2018-12-20 01:54
然后这是我的解决方案:
temp = input("不妨猜一下小甲鱼现在心里想的数字是哪一个数字:")
guess = in ...
现在在上班,今晚回去后,给你贴一下我所写的这个题目的最终版~~~自我感觉还是不错的,只是还没有加入输入容错机制~~ 量子空间 发表于 2018-12-20 01:54
然后这是我的解决方案:
temp = input("不妨猜一下小甲鱼现在心里想的数字是哪一个数字:")
guess = in ...
import random
secret = random.randint (1,10)
print('------------我爱鱼C工作室-------------')
temp = input("不妨猜一下我心里想的是哪个数字:")
guess = int(temp)
for i in range(1,4):
print ('第',i,'次:', end= '')
if guess == secret:
break
else:
if guess > secret:
print ('哥,大了大了!')
else:
print("嘿,小了!小了!")
temp = input("猜错了。请重新输入:")
guess = int(temp)
if i == 3 and guess != secret:
print ('4次都没猜对!')
else:
print("哇草,你是小甲鱼心里的蛔虫吗?")
print ('哼,猜中了也没有奖励!')
print("游戏结束,不玩啦!") 新人报道,昨天开始学,今天第二天,目前也在研究这个问题,答案8可以搞定,产生一个随机数也可以搞定,限制猜的次数搞不定,在研究中。
另外,第一次就提示大了还是小了,也没搞定。
页:
[1]