Bruce131102 发表于 2021-9-8 20:20:09

随机数问题

import random
secret = random.randint(1,10)
times = 3
print('--------我爱鱼C工作室--------')
guess = 0
print("猜数字,搞快点:", end=" ")
while (guess != secret) and (times > 0):
      temp = input( )
      guess = int(temp)
      times = times - 1
      if guess == secret:
         print("卧槽,你是小甲鱼心里的蛔虫吗?")
      else:
         if guess > secret:
             print("哥, 大了大了~~")
         else:/Users/zhengweili/Desktop/截屏2021-09-08 下午8.16.08.png
             print("嘿嘿,小了小了~~")
         if times > 0:
             print("再来:",end=" ")
         else:
             print("GG")
print("游戏结束,不玩啦^_^")


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

这串代码不是第一次输入的时候的值是不可能等于secret的吗?为什么我第一次输入就等于了呢

傻眼貓咪 发表于 2021-9-8 20:22:18

十分一的機會,很容易中的

大马强 发表于 2021-9-8 20:44:08

怎么可能,概率的东西哪有百分百

傻眼貓咪 发表于 2021-9-8 20:51:34

大马强 发表于 2021-9-8 20:44
怎么可能,概率的东西哪有百分百

樓主說只試第一次就中(重點是一次,不是每次){:5_97:}
我並沒有說百分百中啊

Bruce131102 发表于 2021-9-8 21:19:21

那guess = 0的目的是什么啊?

Bruce131102 发表于 2021-9-8 21:21:31

大马强 发表于 2021-9-8 20:44
怎么可能,概率的东西哪有百分百

那还有一个问题,为什么要写guess = 0这段呢?

大马强 发表于 2021-9-8 21:59:28

Bruce131102 发表于 2021-9-8 21:21
那还有一个问题,为什么要写guess = 0这段呢?

1.因为后面会引用到guess变量,要先进行声明,否则会报错
2.你猜的数字时1到 9,所以不影响结果所以才赋值为0,你选择其他不影响判断的数字都是可以

柿子饼同学 发表于 2021-9-8 23:21:40

这个只是碰巧而已 , 你输入的值和她随机出来的一样 .
guess = 0 可以理解为初始化变量 , 告诉电脑这里有一个变量叫 guess

Bruce131102 发表于 2021-9-9 09:05:24

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

差不多懂了,那后面的end=" ",具体是什么意思啊

大马强 发表于 2021-9-9 09:53:56

Bruce131102 发表于 2021-9-9 09:05
差不多懂了,那后面的end=" ",具体是什么意思啊

作用是让下次输出不换行

Bruce131102 发表于 2021-9-9 10:36:45

大马强 发表于 2021-9-9 09:53
作用是让下次输出不换行

我去,谢谢大佬,终于懂了。还有一个问题,while下面的两条语句
temp = input ( )
guess = int (temp)
这里temp给的是一个空的值,可是如果我输入错误了,确实会提示我 “再输入一次:”,咋回事儿啊

benyazi 发表于 2021-9-9 12:08:17

我觉得这个代码还是有问题的,课程里面讲的就有问题,就是楼主碰到的这种情况,难免会出现用户第一次就输中的情况,不能说概率低就算了!
我改了一下,不知道对不对!
print("----欢迎来的猜数字游戏(您有三次机会0-9)-----")
print("我会提示你猜大了还是猜小了,游戏开始")
shuzi=int(input("请输入您猜测的数字:"))
x=0
if shuzi==6:
    print("恭喜您猜对了")
else:
    while shuzi!=6 and x<2:
      if shuzi>6:
            print("您猜大了")
      else:
            print("您猜小了")
      x+=1
      shuzi = int(input("请重新输入:"))
if x==2:
    print("次数用完,您输了")
else:
    print("您猜对了")

傻眼貓咪 发表于 2021-9-9 12:16:35

本帖最后由 傻眼貓咪 于 2021-9-9 12:18 编辑

benyazi 发表于 2021-9-9 12:08
我觉得这个代码还是有问题的,课程里面讲的就有问题,就是楼主碰到的这种情况,难免会出现用户第一次就输中 ...

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

print(game.__doc__)
game()

大马强 发表于 2021-9-9 12:21:14

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

你的意思是直接回车吗?
我这直接报错退出的,没有重新让我输入

benyazi 发表于 2021-9-9 12:57:00

这样呢!
import random
yuanshu=random.randint(0,10)
print("----欢迎来的猜数字游戏(您有三次机会0-9)-----")
print("我会提示你猜大了还是猜小了,游戏开始")
shuzi=int(input("请输入您猜测的数字:"))
x=0
if shuzi==yuanshu:
    print("恭喜您猜对了")
else:
    while shuzi!=yuanshu and x<2:
      if shuzi>yuanshu:
            print("您猜大了")
      else:
            print("您猜小了")
      x+=1
      shuzi = int(input("请重新输入:"))
if shuzi==yuanshu:
    print("恭喜您猜对了")
else:
    print("次数用完,您输了")

大马强 发表于 2021-9-9 13:19:11

傻眼貓咪 发表于 2021-9-8 20:51
樓主說只試第一次就中(重點是一次,不是每次)

哈哈哈,你好像误解我的意思
我想表达的是-> 怎么可能(怎么可能第一次必不中)
和你的意思一样的

傻眼貓咪 发表于 2021-9-9 13:40:20

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

{:5_109:}

Bruce131102 发表于 2021-9-9 14:08:12

大马强 发表于 2021-9-9 12:21
你的意思是直接回车吗?
我这直接报错退出的,没有重新让我输入

就是小甲鱼给的代码里面他是这么写的,然后如果说猜不中就会出现“大/小”的提示,所以我不是很清楚为什么这里input()里面是空的

Bruce131102 发表于 2021-9-9 14:09:53

benyazi 发表于 2021-9-9 12:57
这样呢!

大佬,我好像懂啥意思了,多谢多谢,这样看就容易懂一些了。小白太难了,哈哈
页: [1]
查看完整版本: 随机数问题