迷之船 发表于 2021-4-6 20:05:21

随机数猜数问题

新手一枚,问提如下:
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 20:37:48

你是想用for i in range (0,3)来限制3次吗?

小伤口 发表于 2021-4-6 21:49:20

猜一猜这个0-9的数,至多三次
d
输数为:
2
该数过小
d
输数为:
2
该数过小
d
输数为:
3
该数过小
对不起,猜了三次都错了,该数为: 4
如若还想玩请输入00
d
输数为:
我这儿for循环是执行三次欸~{:10_254:}

肖-肖 发表于 2021-4-6 23:16:28

本帖最后由 肖-肖 于 2021-4-6 23:25 编辑

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

运行结果如下:
猜一猜这个0-9的数,至多三次
输数为:
3
该数过小
输数为:
4
该数过小
输数为:
5
你猜对了!
如若还想玩请输入00
输数为:
5
该数过大
输数为:
4
该数过大
输数为:
2
你猜对了!
如若还想玩请输入00
输数为:
1
该数过小
输数为:
5
该数过小
输数为:
8
该数过小
如若还想玩请输入0
我认为重要点的哈:那个随机数肯定要放在while中的呀!如果不这样->不重新启动那个随机数是不会变得呀!
对吧。
还有就是你要限制猜的次数为3次,那么就要有个计数的呀!
我的代码中用j来计数了,反正如果你想在玩一次的话也要输入0嘛
这样还少定义一个变量不是吗?嘿嘿~{:10_256:}

迷之船 发表于 2021-4-7 11:01:00

五岁能抬头 发表于 2021-4-6 20:37
你是想用for i in range (0,3)来限制3次吗?

嗯,我就不太懂,从顺序上我觉得写的好像没问题,不知道为什么就直接跳出来不执行三次了

迷之船 发表于 2021-4-7 11:04:35

小伤口 发表于 2021-4-6 21:49
我这儿for循环是执行三次欸~

。。。。。是用我写在上边的吗?我用的版本是3.5.1

迷之船 发表于 2021-4-7 11:10:51

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

谢谢你了,我后来把那段复制到另一台电脑上,结果可以循环三次,安得同一个软件包,可能电脑问题吧

小伤口 发表于 2021-4-7 11:48:13

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

嘻嘻~既然解决了那就给自己设置已解决吧~{:10_254:}

帅气小哥 发表于 2021-4-7 14:51:03

看了 楼主的代码 我跑了一遍 一开始还是循环三次 但是不知道为啥后面就是只能循环一次 了 很奇怪 我的版本是3.9 的

五岁能抬头 发表于 2021-4-7 16:26:20

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

我也是新手,其实看不出哪有毛病,但从你这学到了用for i in range来限制循环次数,又涨姿势了{:10_297:}

迷之船 发表于 2021-4-7 20:18:37

小伤口 发表于 2021-4-7 11:48
嘻嘻~既然解决了那就给自己设置已解决吧~

没有,欲哭无泪。。。过了一会后又回到从前只跑一边就跳出来了的状态。。。我真不知道为什么

小伤口 发表于 2021-4-7 20:23:22

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

这样你把你的需求详细的说一下
再说说你写的代码那里不符合你的需求
{:10_254:}

迷之船 发表于 2021-4-8 21:31:15

小伤口 发表于 2021-4-7 20:23
这样你把你的需求详细的说一下
再说说你写的代码那里不符合你的需求

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

我看我写的逻辑上没有问题啊,麻烦看一下是哪地方出问题了{:10_266:}

小伤口 发表于 2021-4-8 21:47:43

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

这样你把你的输出内容给我看看{:10_257:}

迷之船 发表于 2021-4-9 20:40:16

小伤口 发表于 2021-4-8 21:47
这样你把你的输出内容给我看看

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



就是这样了{:10_266:},如果你不能解决我就不再问了 ,

小伤口 发表于 2021-4-9 20:54:39

迷之船 发表于 2021-4-9 20:40
猜一猜这个0-9的数,至多三次
输数为:
6


我都不知道你在说啥
你自己解决吧
页: [1]
查看完整版本: 随机数猜数问题