鱼C论坛

 找回密码
 立即注册
查看: 2323|回复: 18

随机数问题

[复制链接]
发表于 2021-9-8 20:20:09 | 显示全部楼层 |阅读模式

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

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

x
  1. import random
  2. secret = random.randint(1,10)
  3. times = 3
  4. print('--------我爱鱼C工作室--------')
  5. guess = 0
  6. print("猜数字,搞快点:", end=" ")
  7. while (guess != secret) and (times > 0):
  8.       temp = input( )
  9.       guess = int(temp)
  10.       times = times - 1
  11.       if guess == secret:
  12.          print("卧槽,你是小甲鱼心里的蛔虫吗?")
  13.       else:
  14.          if guess > secret:
  15.              print("哥, 大了大了~~")
  16.          else:/Users/zhengweili/Desktop/截屏2021-09-08 下午8.16.08.png
  17.              print("嘿嘿,小了小了~~")
  18.          if times > 0:
  19.              print("再来:",end=" ")
  20.          else:
  21.              print("GG")
  22. print("游戏结束,不玩啦^_^")
复制代码



/Users/zhengweili/Desktop/截屏2021-09-08 下午8.16.08.png

这串代码不是第一次输入的时候的值是不可能等于secret的吗?为什么我第一次输入就等于了呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-9-8 20:22:18 | 显示全部楼层
十分一的機會,很容易中的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-8 20:44:08 | 显示全部楼层
怎么可能,概率的东西哪有百分百
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-8 20:51:34 | 显示全部楼层
大马强 发表于 2021-9-8 20:44
怎么可能,概率的东西哪有百分百

樓主說只試第一次就中(重點是一次,不是每次)
我並沒有說百分百中啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-8 21:19:21 | 显示全部楼层
那guess = 0的目的是什么啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-8 21:21:31 | 显示全部楼层
大马强 发表于 2021-9-8 20:44
怎么可能,概率的东西哪有百分百

那还有一个问题,为什么要写guess = 0这段呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-8 21:59:28 | 显示全部楼层
Bruce131102 发表于 2021-9-8 21:21
那还有一个问题,为什么要写guess = 0这段呢?

1.因为后面会引用到guess变量,要先进行声明,否则会报错
2.你猜的数字时1到 9,所以不影响结果所以才赋值为0,你选择其他不影响判断的数字都是可以
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-8 23:21:40 | 显示全部楼层
这个只是碰巧而已 , 你输入的值和她随机出来的一样 .
guess = 0 可以理解为初始化变量 , 告诉电脑这里有一个变量叫 guess
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-9 09:05:24 | 显示全部楼层
大马强 发表于 2021-9-8 21:59
1.因为后面会引用到guess变量,要先进行声明,否则会报错
2.你猜的数字时1到 9,所以不影响结果所以才赋 ...

差不多懂了,那后面的end=" ",具体是什么意思啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-9 09:53:56 From FishC Mobile | 显示全部楼层
Bruce131102 发表于 2021-9-9 09:05
差不多懂了,那后面的end=" ",具体是什么意思啊

作用是让下次输出不换行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-9 10:36:45 | 显示全部楼层
大马强 发表于 2021-9-9 09:53
作用是让下次输出不换行

我去,谢谢大佬,终于懂了。还有一个问题,while下面的两条语句
temp = input ( )
guess = int (temp)
这里temp给的是一个空的值,可是如果我输入错误了,确实会提示我 “再输入一次:”,咋回事儿啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-9 12:08:17 | 显示全部楼层
我觉得这个代码还是有问题的,课程里面讲的就有问题,就是楼主碰到的这种情况,难免会出现用户第一次就输中的情况,不能说概率低就算了!
我改了一下,不知道对不对!
  1. print("----欢迎来的猜数字游戏(您有三次机会0-9)-----")
  2. print("我会提示你猜大了还是猜小了,游戏开始")
  3. shuzi=int(input("请输入您猜测的数字:"))
  4. x=0
  5. if shuzi==6:
  6.     print("恭喜您猜对了")
  7. else:
  8.     while shuzi!=6 and x<2:
  9.         if shuzi>6:
  10.             print("您猜大了")
  11.         else:
  12.             print("您猜小了")
  13.         x+=1
  14.         shuzi = int(input("请重新输入:"))
  15. if x==2:
  16.     print("次数用完,您输了")
  17. else:
  18.     print("您猜对了")
复制代码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-9 12:16:35 | 显示全部楼层
本帖最后由 傻眼貓咪 于 2021-9-9 12:18 编辑
benyazi 发表于 2021-9-9 12:08
我觉得这个代码还是有问题的,课程里面讲的就有问题,就是楼主碰到的这种情况,难免会出现用户第一次就输中 ...


兄弟,我試了樓主的代碼沒有問題,希望你能先試試。
再來就是你的代碼沒有用隨機,猜數字要用隨機 random() 函數
我的代碼:
  1. def game():
  2.     """
  3.     猜數字遊戲
  4.     """
  5.     import random
  6.     secret = random.randint(1, 10); n = 3
  7.     while n:
  8.         try:
  9.             num = int(input("guess a number between 1 to 10: "))
  10.             n -= 1
  11.             if num == secret: print("correct answer!"); return
  12.             elif num > secret and n: print("too big, please try again"); continue
  13.             elif n: print("too small, please try again"); continue
  14.             else: print("you are lose"); return
  15.         except: print("invalid input, try again"); continue

  16. print(game.__doc__)
  17. game()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-9 12:21:14 | 显示全部楼层
Bruce131102 发表于 2021-9-9 10:36
我去,谢谢大佬,终于懂了。还有一个问题,while下面的两条语句
temp = input ( )
guess = int (temp)
...

你的意思是直接回车吗?
我这直接报错退出的,没有重新让我输入
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-9 12:57:00 | 显示全部楼层
这样呢!
  1. import random
  2. yuanshu=random.randint(0,10)
  3. print("----欢迎来的猜数字游戏(您有三次机会0-9)-----")
  4. print("我会提示你猜大了还是猜小了,游戏开始")
  5. shuzi=int(input("请输入您猜测的数字:"))
  6. x=0
  7. if shuzi==yuanshu:
  8.     print("恭喜您猜对了")
  9. else:
  10.     while shuzi!=yuanshu and x<2:
  11.         if shuzi>yuanshu:
  12.             print("您猜大了")
  13.         else:
  14.             print("您猜小了")
  15.         x+=1
  16.         shuzi = int(input("请重新输入:"))
  17. if shuzi==yuanshu:
  18.     print("恭喜您猜对了")
  19. else:
  20.     print("次数用完,您输了")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-9 13:19:11 | 显示全部楼层
傻眼貓咪 发表于 2021-9-8 20:51
樓主說只試第一次就中(重點是一次,不是每次)

哈哈哈,你好像误解我的意思
我想表达的是-> 怎么可能(怎么可能第一次必不中)
和你的意思一样的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-9-9 13:40:20 | 显示全部楼层
大马强 发表于 2021-9-9 13:19
哈哈哈,你好像误解我的意思
我想表达的是-> 怎么可能(怎么可能第一次必不中)
和你的意思一样的

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-9 14:08:12 | 显示全部楼层
大马强 发表于 2021-9-9 12:21
你的意思是直接回车吗?
我这直接报错退出的,没有重新让我输入

就是小甲鱼给的代码里面他是这么写的,然后如果说猜不中就会出现“大/小”的提示,所以我不是很清楚为什么这里input()里面是空的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-9 14:09:53 | 显示全部楼层

大佬,我好像懂啥意思了,多谢多谢,这样看就容易懂一些了。小白太难了,哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-15 05:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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