ja258736874 发表于 2020-12-21 20:09:02

小伤口 发表于 2020-12-21 20:17:00

所以你的问题?

ja258736874 发表于 2020-12-21 20:19:02

ja258736874 发表于 2020-12-21 20:22:03

不能懒 发表于 2020-12-21 20:24:17

一个循环内一个循环外肯定有区别啊

小伤口 发表于 2020-12-21 21:06:17

import random
secret =random.randint(1,10)
times = 3
guess = 0
print('和JSY玩儿个游戏吧!')
temp = input('不妨猜猜JSY心里的数字吧:')
while not temp.isdigit():
   temp = input('输入有误,请重新输入:')#出现这个BUG的原因就在于当这个输入正确时进入到while循环而你下面又有一个 temp =input() 所以又得赋值一次

while guess != secret and times > 0:#其实还有一个BUG当你答对的时候 print('恭喜你,答对了')这句是不会出现的因为你的while循环是在guess != secret 的条件
   temp =input() #下进行的当guess == secret时直接退出循环
   guess = int(temp)
   times = times - 1
   if guess == secret:
       print('恭喜你,答对了')
   else:
       if guess < secret:
         print('小了小了')
       else:
         print('大了大了')
       if times > 0:
         print('继续试试吧:', end = '')
       else:
         print('完犊子了')
print('游戏结束了')


以下是我的解决办法(仅供参考)
import random
secret =random.randint(1,10)
times = 3
guess = 0
print('和JSY玩儿个游戏吧!')
temp = input('不妨猜猜JSY心里的数字吧:')
while not temp.isdigit():
   temp = input('输入有误,请重新输入:')

while 1:
   
   guess = int(temp)
   times = times - 1
   if guess == secret:
       print('恭喜你,答对了')
       break#break参数直接退出当前循环马上你就学到了
   
   else:
       if guess < secret:
         print('小了小了')
       else:
         print('大了大了')
       if times > 0:
         print('继续试试吧:', end = '')
         temp=input()#放在这儿就可以先让程序判断再重新赋值
       else:
         print('完犊子了')
         break
print('游戏结束了')


小伤口 发表于 2020-12-21 21:11:26

ja258736874 发表于 2020-12-21 20:22
第二个问题,请看下面的代码~




import random
secret =random.randint(1,10)
times = 3
guess = 0
print('和JSY玩儿个游戏吧!')
temp = input('不妨猜猜JSY心里的数字吧:')#两个input自然就要赋值两次
while not temp.isdigit():
   temp = input('输入有误,请重新输入:')

temp =input()
guess = int(temp)#guess去最后一个temp
while guess != secret and times > 0:
   times = times - 1
   if guess == secret:#input放在外面除了Time就没有什么再阻止while循环了所以会一直以相同的值循环直到time=0
       print('恭喜你,答对了')
   else:
       if guess < secret:
         print('小了小了')
       else:
         print('大了大了')
       if times > 0:
         print('继续试试吧:', end = '')
       else:
         print('完犊子了')
print('游戏结束了')

小伤口 发表于 2020-12-21 21:12:10

有帮助的话给个最佳吧

ja258736874 发表于 2020-12-22 16:34:07

ja258736874 发表于 2020-12-22 16:35:41

小伤口 发表于 2020-12-22 16:36:14

ja258736874 发表于 2020-12-22 16:34
这个程序还是有问题,我运行了 它似乎只循环 guess

????是我理解出问题了吗,你输入1不就是小了小了吗?你就输入大的呀

小伤口 发表于 2020-12-22 16:39:03

ja258736874 发表于 2020-12-22 16:35
@小伤口

这本来就是随机,上面的情况只能说明结果大于3

ja258736874 发表于 2020-12-22 16:43:07

ja258736874 发表于 2020-12-22 16:44:24

小伤口 发表于 2020-12-22 16:46:03

ja258736874 发表于 2020-12-22 16:44
完美!我要继续努力!

加油,后面学的多了,就可以用很多种办法实现,更完美,更多功能{:10_256:}

ja258736874 发表于 2020-12-22 16:49:13

页: [1]
查看完整版本: 小白求助第5讲作业改进