随机数问题
import randomsecret = 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:44
怎么可能,概率的东西哪有百分百
樓主說只試第一次就中(重點是一次,不是每次){:5_97:}
我並沒有說百分百中啊 那guess = 0的目的是什么啊?
大马强 发表于 2021-9-8 20:44
怎么可能,概率的东西哪有百分百
那还有一个问题,为什么要写guess = 0这段呢? Bruce131102 发表于 2021-9-8 21:21
那还有一个问题,为什么要写guess = 0这段呢?
1.因为后面会引用到guess变量,要先进行声明,否则会报错
2.你猜的数字时1到 9,所以不影响结果所以才赋值为0,你选择其他不影响判断的数字都是可以 这个只是碰巧而已 , 你输入的值和她随机出来的一样 .
guess = 0 可以理解为初始化变量 , 告诉电脑这里有一个变量叫 guess 大马强 发表于 2021-9-8 21:59
1.因为后面会引用到guess变量,要先进行声明,否则会报错
2.你猜的数字时1到 9,所以不影响结果所以才赋 ...
差不多懂了,那后面的end=" ",具体是什么意思啊
Bruce131102 发表于 2021-9-9 09:05
差不多懂了,那后面的end=" ",具体是什么意思啊
作用是让下次输出不换行 大马强 发表于 2021-9-9 09:53
作用是让下次输出不换行
我去,谢谢大佬,终于懂了。还有一个问题,while下面的两条语句
temp = input ( )
guess = int (temp)
这里temp给的是一个空的值,可是如果我输入错误了,确实会提示我 “再输入一次:”,咋回事儿啊
我觉得这个代码还是有问题的,课程里面讲的就有问题,就是楼主碰到的这种情况,难免会出现用户第一次就输中的情况,不能说概率低就算了!
我改了一下,不知道对不对!
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: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() Bruce131102 发表于 2021-9-9 10:36
我去,谢谢大佬,终于懂了。还有一个问题,while下面的两条语句
temp = input ( )
guess = int (temp)
...
你的意思是直接回车吗?
我这直接报错退出的,没有重新让我输入 这样呢!
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-8 20:51
樓主說只試第一次就中(重點是一次,不是每次)
哈哈哈,你好像误解我的意思
我想表达的是-> 怎么可能(怎么可能第一次必不中)
和你的意思一样的 大马强 发表于 2021-9-9 13:19
哈哈哈,你好像误解我的意思
我想表达的是-> 怎么可能(怎么可能第一次必不中)
和你的意思一样的
{:5_109:} 大马强 发表于 2021-9-9 12:21
你的意思是直接回车吗?
我这直接报错退出的,没有重新让我输入
就是小甲鱼给的代码里面他是这么写的,然后如果说猜不中就会出现“大/小”的提示,所以我不是很清楚为什么这里input()里面是空的 benyazi 发表于 2021-9-9 12:57
这样呢!
大佬,我好像懂啥意思了,多谢多谢,这样看就容易懂一些了。小白太难了,哈哈
页:
[1]