鱼C论坛

 找回密码
 立即注册
查看: 1790|回复: 15

[已解决]小白求助第5讲作业改进

[复制链接]
头像被屏蔽
发表于 2020-12-21 20:09:02 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-12-21 20:17:00 | 显示全部楼层
所以你的问题?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2020-12-21 20:19:02 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2020-12-21 20:22:03 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-21 20:24:17 | 显示全部楼层
一个循环内一个循环外肯定有区别啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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('游戏结束了')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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('游戏结束了')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-21 21:12:10 | 显示全部楼层
有帮助的话给个最佳吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2020-12-22 16:34:07 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2020-12-22 16:35:41 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-22 16:36:14 | 显示全部楼层
ja258736874 发表于 2020-12-22 16:34
这个程序还是有问题,我运行了 它似乎只循环 guess

????是我理解出问题了吗,你输入1不就是小了小了吗?你就输入大的呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-22 16:39:03 | 显示全部楼层

这本来就是随机,上面的情况只能说明结果大于3
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2020-12-22 16:43:07 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2020-12-22 16:44:24 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-22 16:46:03 | 显示全部楼层
ja258736874 发表于 2020-12-22 16:44
完美!我要继续努力!

加油,后面学的多了,就可以用很多种办法实现,更完美,更多功能
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2020-12-22 16:49:13 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-17 00:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表