明天的算法大佬 发表于 2021-4-29 19:38:12

这样写错误在哪里

为啥输入2不返回“”小了小了“
输入09会返回“大了大了”
????

heidern0612 发表于 2021-4-29 19:54:54

从上往下走一遍就明白了。
你输入2的情况下,进入while循环。
while循环执行i自减1的操作,然后temp直接输入内容。你输入了9.
屏幕会输出猜错了。接下来执行guess的int化。
因为9比7大,所以输出了大了大了,然后又返回了temp的input内容让你输入。

你的temp和guess既然在前面都定义好了,下面就不要重复输入两次了,这样不是做重复工作吗?

君苏依寂 发表于 2021-4-29 19:58:18

当你输入数字2后,程序进行到了第六行,打印了字符串中的字符
然后你再次输入数字,才会进行if语句中的命令。个人理解,如有错误,请指正。

学c的sjj 发表于 2021-4-29 21:00:18

你guess 后边又定义了一次。

柿子饼同学 发表于 2021-4-29 21:12:07

本帖最后由 柿子饼同学 于 2021-4-29 21:20 编辑

#小游戏
guess = input('不妨猜一下小甲鱼现在心里想的数字(1, 10):')
guess = int(guess)
i = 3
while guess != 7 and i:
   i -= 1
   
   if guess < 7:
          print('大了')
   else:
          print('小了')
         
   guess = int(input('在试一次吧'))
   
if guess == 7:
   print('对了')
   
print('游戏结束啦')自己写的,仅供参考
主要就是你的判断大小和重新输入的代码换一下位置

江湖散人 发表于 2021-4-29 21:54:11

本帖最后由 江湖散人 于 2021-4-29 22:01 编辑

当你输入2的时候,进入while 循环,i=3-1=2(这个时候你再输入一次2的话,就会显示小了)
然后又提示你输入数字,然后你就输入了9,开始判断9和7的大小,所以只能显示大了。

i=1
while i<=3:
    temp = int(input('请猜一个数字吧:'))
    if temp==7:
      print('恭喜你,猜对了')
      break
    elif temp>7:
      print('大了大了')
    else:
      print('小了小了')
    i+=1
print('游戏结束!')

你好,我也是新手,我把你的程序重新写了一下,不是很好。不过运行没什么问题。仅供参考

明天的算法大佬 发表于 2021-4-30 22:48:18

江湖散人 发表于 2021-4-29 21:54
当你输入2的时候,进入while 循环,i=3-1=2(这个时候你再输入一次2的话,就会显示小了)
然后又提示你输 ...

谢谢

在下萌新 发表于 2021-5-1 00:11:04

你这个guess两次赋值了。

江湖散人 发表于 2021-5-1 08:39:24

明天的算法大佬 发表于 2021-4-30 22:48
谢谢

记得把你认为最好的答案列为最佳答案哦
页: [1]
查看完整版本: 这样写错误在哪里