onec 发表于 2020-9-16 14:29:44

猜数字游戏里面的疑惑


print('---我爱鱼c工作室---')
temp=input('不妨猜一下小甲鱼现在心里想的是哪个数字:')
guess=int(temp)
while guess != 8:
    temp=input('哎呀,猜错了,请重试吧:')
    guess=int(temp)
    if guess==8:
      print('卧槽,你是小甲鱼心里的蛔虫吗?')
      print('哼,猜中了也没有奖励')
    else:
      if guess>8:
            print('哥,大了大了~~~')
      else:
            print('嘿,小了!小了!')
print('游戏结束,不玩啦~~~')


这一段代码里面:
temp=input('哎呀,猜错了,请重试吧:')
guess=int(temp)
这两行什么作用?
把它们删除后如果猜对是8,就直接显示“游戏结束,不玩啦~~~”
如果猜的不是8,就无限循环大了或者小了。
请高手释疑,感谢!

昨非 发表于 2020-9-16 15:33:38

temp=input('哎呀,猜错了,请重试吧:')
guess=int(temp)
这两行是放在
while 答案错了的情况下优先执行的两行,本意为再次输入所猜结果。
实现了多次猜数

而在执行这两行前,则是上次输入答案的判断结果(大、小或猜中)
属于上次循环

baige 发表于 2020-9-16 15:34:25

这不是很正常吗,删除后,你的guess没有重新赋值,一直是第一次输入的那个值,guess一直不会等于8,也就是while循环一直为真,结果当然是死循环了
temp=input('哎呀,猜错了,请重试吧:')
guess=int(temp)
这两句不是最开始接触的吗,就是temp接收用户的输入,更新guess的值,当guess=8是跳出循环

LuLD 发表于 2020-9-16 15:35:40

在while循环里 可以改变 guess 的值,进而跳出while循环,删除掉的话,guess的值在while里无法改变就会一直循环

onec 发表于 2020-9-16 16:30:42

昨非 发表于 2020-9-16 15:33
这两行是放在
while 答案错了的情况下优先执行的两行,本意为再次输入所猜结果。
实现了多次猜数


受教了,谢谢。抱歉,只能有一个最佳答案。

onec 发表于 2020-9-16 16:31:46

LuLD 发表于 2020-9-16 15:35
在while循环里 可以改变 guess 的值,进而跳出while循环,删除掉的话,guess的值在while里无法改变就会一直 ...

受教了,谢谢。抱歉,只能有一个最佳答案。

onec 发表于 2020-9-16 16:32:20

baige 发表于 2020-9-16 15:34
这不是很正常吗,删除后,你的guess没有重新赋值,一直是第一次输入的那个值,guess一直不会等于8,也就是w ...

感谢感谢,解惑了~~~

LuLD 发表于 2020-9-16 16:36:27

onec 发表于 2020-9-16 16:31
受教了,谢谢。抱歉,只能有一个最佳答案。

哈哈哈,没关系的,你觉得哪个回答 你能很好理解,就可以

昨非 发表于 2020-9-16 16:37:24

onec 发表于 2020-9-16 16:30
受教了,谢谢。抱歉,只能有一个最佳答案。

没事解决就好

onec 发表于 2020-9-16 16:39:09

昨非 发表于 2020-9-16 16:37
没事解决就好

嗯嗯,边看边问边学,幸好有你们这些大神解惑啊,幸福!{:9_236:}

onec 发表于 2020-9-16 16:59:34

LuLD 发表于 2020-9-16 16:36
哈哈哈,没关系的,你觉得哪个回答 你能很好理解,就可以

嗯嗯,是的呢,答案都对,
你们太nice了,有能力,人又好,开心~~~
页: [1]
查看完整版本: 猜数字游戏里面的疑惑