鱼C论坛

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

[已解决]随机数猜数问题

[复制链接]
发表于 2021-4-6 20:05:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
新手一枚,问提如下:
import random
a=random.randint(0,9)
print('猜一猜这个0-9的数,至多三次')
j=0
while j==0:
    for i in range(0,3):
        x=int(input('输数为:\n'))
        if x>a:
            print('该数过大')
        if x<a:
            print('该数过小')
        else:
            break
    if x==a:
        print('你猜对了!')
    else:
        print('对不起,猜了三次都错了,该数为:',a)
    j=int(input('如若还想玩请输入0'))

我就加上了了一个while语句,结果for语句只执行了一次就跳出来了,图片放不进来只能把写的放上边,想知道问什么for只执行了一次

以下为结果:
猜一猜这个0-9的数,至多三次
输数为:
6
该数过大
对不起,猜了三次都错了,该数为: 0
如若还想玩请输入0
最佳答案
2021-4-6 23:16:28
本帖最后由 肖-肖 于 2021-4-6 23:25 编辑

我就学了4节小甲鱼的课,我不是很懂,我查了下资料,我弄出来了:
当然肯定有不足的地方!比如那个else我用else就不行出错,这我就不明白!嘿嘿,害,哪有那么多时间学别的呀,不得上课嘛~
话说学的SQLServer的那个各种模型,图形结构、关系代数、什么范式啥的、太抽象我真的不行阿对这个!!!就连那些不管是关系表达式还是SQL语句都他么的刁钻!!
希望对你有点用吧!代码如下:
  1. import random
  2. print('猜一猜这个0-9的数,至多三次')
  3. j=0
  4. while j==0:
  5.     a=random.randint(0,9)
  6.     for i in range(0,3):
  7.         x=int(input('输数为:\n'))
  8.         if j==3:
  9.             print('对不起,猜了三次都错了,该数为:',a)
  10.             break
  11.         if x>a:
  12.             print('该数过大')
  13.             j=j+1
  14.         if x<a:
  15.             print('该数过小')
  16.             j=j+1
  17.         if x==a:
  18.             print('你猜对了!')
  19.             break
  20.     j=int(input('如若还想玩请输入0'))
复制代码

运行结果如下:
  1. 猜一猜这个0-9的数,至多三次
  2. 输数为:
  3. 3
  4. 该数过小
  5. 输数为:
  6. 4
  7. 该数过小
  8. 输数为:
  9. 5
  10. 你猜对了!
  11. 如若还想玩请输入00
  12. 输数为:
  13. 5
  14. 该数过大
  15. 输数为:
  16. 4
  17. 该数过大
  18. 输数为:
  19. 2
  20. 你猜对了!
  21. 如若还想玩请输入00
  22. 输数为:
  23. 1
  24. 该数过小
  25. 输数为:
  26. 5
  27. 该数过小
  28. 输数为:
  29. 8
  30. 该数过小
  31. 如若还想玩请输入0
复制代码

我认为重要点的哈:那个随机数肯定要放在while中的呀!如果不这样->不重新启动那个随机数是不会变得呀!
对吧。
还有就是你要限制猜的次数为3次,那么就要有个计数的呀!
我的代码中用j来计数了,反正如果你想在玩一次的话也要输入0嘛
这样还少定义一个变量不是吗?嘿嘿~
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-4-6 20:37:48 From FishC Mobile | 显示全部楼层
你是想用for i in range (0,3)来限制3次吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-6 21:49:20 | 显示全部楼层
  1. 猜一猜这个0-9的数,至多三次
  2. d
  3. 输数为:
  4. 2
  5. 该数过小
  6. d
  7. 输数为:
  8. 2
  9. 该数过小
  10. d
  11. 输数为:
  12. 3
  13. 该数过小
  14. 对不起,猜了三次都错了,该数为: 4
  15. 如若还想玩请输入00
  16. d
  17. 输数为:
复制代码

我这儿for循环是执行三次欸~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-6 23:16:28 | 显示全部楼层    本楼为最佳答案   
本帖最后由 肖-肖 于 2021-4-6 23:25 编辑

我就学了4节小甲鱼的课,我不是很懂,我查了下资料,我弄出来了:
当然肯定有不足的地方!比如那个else我用else就不行出错,这我就不明白!嘿嘿,害,哪有那么多时间学别的呀,不得上课嘛~
话说学的SQLServer的那个各种模型,图形结构、关系代数、什么范式啥的、太抽象我真的不行阿对这个!!!就连那些不管是关系表达式还是SQL语句都他么的刁钻!!
希望对你有点用吧!代码如下:
  1. import random
  2. print('猜一猜这个0-9的数,至多三次')
  3. j=0
  4. while j==0:
  5.     a=random.randint(0,9)
  6.     for i in range(0,3):
  7.         x=int(input('输数为:\n'))
  8.         if j==3:
  9.             print('对不起,猜了三次都错了,该数为:',a)
  10.             break
  11.         if x>a:
  12.             print('该数过大')
  13.             j=j+1
  14.         if x<a:
  15.             print('该数过小')
  16.             j=j+1
  17.         if x==a:
  18.             print('你猜对了!')
  19.             break
  20.     j=int(input('如若还想玩请输入0'))
复制代码

运行结果如下:
  1. 猜一猜这个0-9的数,至多三次
  2. 输数为:
  3. 3
  4. 该数过小
  5. 输数为:
  6. 4
  7. 该数过小
  8. 输数为:
  9. 5
  10. 你猜对了!
  11. 如若还想玩请输入00
  12. 输数为:
  13. 5
  14. 该数过大
  15. 输数为:
  16. 4
  17. 该数过大
  18. 输数为:
  19. 2
  20. 你猜对了!
  21. 如若还想玩请输入00
  22. 输数为:
  23. 1
  24. 该数过小
  25. 输数为:
  26. 5
  27. 该数过小
  28. 输数为:
  29. 8
  30. 该数过小
  31. 如若还想玩请输入0
复制代码

我认为重要点的哈:那个随机数肯定要放在while中的呀!如果不这样->不重新启动那个随机数是不会变得呀!
对吧。
还有就是你要限制猜的次数为3次,那么就要有个计数的呀!
我的代码中用j来计数了,反正如果你想在玩一次的话也要输入0嘛
这样还少定义一个变量不是吗?嘿嘿~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-7 11:01:00 | 显示全部楼层
五岁能抬头 发表于 2021-4-6 20:37
你是想用for i in range (0,3)来限制3次吗?

嗯,我就不太懂,从顺序上我觉得写的好像没问题,不知道为什么就直接跳出来不执行三次了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-7 11:04:35 | 显示全部楼层
小伤口 发表于 2021-4-6 21:49
我这儿for循环是执行三次欸~

。。。。。是用我写在上边的吗?我用的版本是3.5.1
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-7 11:10:51 | 显示全部楼层
肖-肖 发表于 2021-4-6 23:16
我就学了4节小甲鱼的课,我不是很懂,我查了下资料,我弄出来了:
当然肯定有不足的地方!比如那个else我用else ...

谢谢你了,我后来把那段复制到另一台电脑上,结果可以循环三次,安得同一个软件包,可能电脑问题吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-7 11:48:13 From FishC Mobile | 显示全部楼层
迷之船 发表于 2021-4-7 11:10
谢谢你了,我后来把那段复制到另一台电脑上,结果可以循环三次,安得同一个软件包,可能电脑问题吧

嘻嘻~既然解决了那就给自己设置已解决吧~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-7 14:51:03 | 显示全部楼层
看了 楼主的代码 我跑了一遍 一开始还是循环三次 但是不知道为啥后面就是只能循环一次 了 很奇怪 我的版本是3.9 的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-7 16:26:20 | 显示全部楼层
迷之船 发表于 2021-4-7 11:01
嗯,我就不太懂,从顺序上我觉得写的好像没问题,不知道为什么就直接跳出来不执行三次了

我也是新手,其实看不出哪有毛病,但从你这学到了用for i in range来限制循环次数,又涨姿势了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-7 20:18:37 | 显示全部楼层
小伤口 发表于 2021-4-7 11:48
嘻嘻~既然解决了那就给自己设置已解决吧~

没有,欲哭无泪。。。过了一会后又回到从前只跑一边就跳出来了的状态。。。我真不知道为什么
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-7 20:23:22 From FishC Mobile | 显示全部楼层
迷之船 发表于 2021-4-7 20:18
没有,欲哭无泪。。。过了一会后又回到从前只跑一边就跳出来了的状态。。。我真不知道为什么


这样你把你的需求详细的说一下
再说说你写的代码那里不符合你的需求
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-8 21:31:15 | 显示全部楼层
小伤口 发表于 2021-4-7 20:23
这样你把你的需求详细的说一下
再说说你写的代码那里不符合你的需求

我按照上边的代码写了后运行,结果for循环只运行一次就跳出来了按道理是要运行三次的,我不知道为什么for只运行一次

我看我写的逻辑上没有问题啊,麻烦看一下是哪地方出问题了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-8 21:47:43 | 显示全部楼层
迷之船 发表于 2021-4-8 21:31
我按照上边的代码写了后运行,结果for循环只运行一次就跳出来了,按道理是要运行三次的,我不知道为什么f ...

这样你把你的输出内容给我看看
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-9 20:40:16 | 显示全部楼层
小伤口 发表于 2021-4-8 21:47
这样你把你的输出内容给我看看

猜一猜这个0-9的数,至多三次
输数为:
6
该数过大
对不起,猜了三次都错了,该数为: 0
如若还想玩请输入0



就是这样了,如果你不能解决我就不再问了 ,
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-9 20:54:39 | 显示全部楼层
迷之船 发表于 2021-4-9 20:40
猜一猜这个0-9的数,至多三次
输数为:
6

我都不知道你在说啥
你自己解决吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-25 22:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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