吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1316|回复: 14
收起左侧

[已解决] python随机函数遇到的问题

[复制链接]
TESLATAWER 发表于 2020-2-28 20:50
本帖最后由 TESLATAWER 于 2020-3-7 17:56 编辑

大家好,我是一名python初学者最近遇到了个小问题,请各位大神帮我答疑解惑一下,谢谢大家!
这是我设计的一个小游戏:
import random
times = 6
key = random.randint(1,100)
print("====================人生苦短,我用python====================")
guess = 0
print("我们来玩个游戏吧!")
while(guess != key) and (times > 0):
    key = int(input("在1至100中猜一猜我想的数是什么数吧,一共有六次机会哦:"))
    times = times - 1
    if guess == key:
        print("你真棒!")
    else:
        if guess > key:
            print("哥,大了大了!")
        else:
            print("嘿,小了小了!")
        if times > 0:
            print("再试一次吧:")
        else:
            print("好笨呀,机会用光咯!")
            print("答案是---")
            print(key)
print("游戏结束,拜拜!")

但结果却是这样
====================人生苦短,我用python====================
我们来玩个游戏吧!
在1至100中猜一猜我想的数是什么数吧,一共有六次机会哦:1
嘿,小了小了!
再试一次吧:
在1至100中猜一猜我想的数是什么数吧,一共有六次机会哦:1
嘿,小了小了!
再试一次吧:
在1至100中猜一猜我想的数是什么数吧,一共有六次机会哦:1
嘿,小了小了!
再试一次吧:
在1至100中猜一猜我想的数是什么数吧,一共有六次机会哦:1
嘿,小了小了!
再试一次吧:
在1至100中猜一猜我想的数是什么数吧,一共有六次机会哦:1
嘿,小了小了!
再试一次吧:
在1至100中猜一猜我想的数是什么数吧,一共有六次机会哦:1
嘿,小了小了!
好笨呀,机会用光咯!
答案是---
1
游戏结束,拜拜!

这是怎么回事啊!!!

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

苏紫方璇 发表于 2020-2-28 21:48
key = int(input("在1至100中猜一猜我想的数是什么数吧,一共有六次机会哦:"))
目测这句应该是guess
q6378561 发表于 2020-2-28 21:52
你这guess变量写成key了
key = int(input("在1至100中猜一猜我想的数是什么数吧,一共有六次机会哦:"))
改成
guess = int(input("在1至100中猜一猜我想的数是什么数吧,一共有六次机会哦:"))
 楼主| TESLATAWER 发表于 2020-2-28 21:55
苏紫方璇 发表于 2020-2-28 21:48
key = int(input("在1至100中猜一猜我想的数是什么数吧,一共有六次机会哦:"))
目测这句应该是guess

谢谢您的回复,但是改后是这样:

====================人生苦短,我用python====================
我们来玩个游戏吧!
在1至100中猜一猜我想的数是什么数吧,一共有六次机会哦:1
嘿,小了小了!
再试一次吧:
在1至100中猜一猜我想的数是什么数吧,一共有六次机会哦:99
嘿,小了小了!
再试一次吧:
在1至100中猜一猜我想的数是什么数吧,一共有六次机会哦:1000000000000000000000
哥,大了大了!
再试一次吧:
在1至100中猜一猜我想的数是什么数吧,一共有六次机会哦:94835
哥,大了大了!
再试一次吧:
在1至100中猜一猜我想的数是什么数吧,一共有六次机会哦:102938765
哥,大了大了!
再试一次吧:
在1至100中猜一猜我想的数是什么数吧,一共有六次机会哦:209318560319247561039284561
哥,大了大了!
好笨呀,机会用光咯!
答案是---
100
游戏结束,拜拜!

可能是判断大小的问题
729 发表于 2020-2-28 22:03
TESLATAWER 发表于 2020-2-28 21:55
谢谢您的回复,但是改后是这样:

====================人生苦短,我用python====================

不是判断大小的问题 是赋值错误了 你用key获取了生成的随机数 后面又用key获取输入的值 会覆盖掉的 应该用其他变量获取输入的值
Imdarshin 发表于 2020-2-28 22:06
Python并不是一个if对应一个else
你还是先去学if的语法吧
luanshils 发表于 2020-2-28 22:09
你这样难道不是一整排判断吗
 楼主| TESLATAWER 发表于 2020-2-28 22:10
729 发表于 2020-2-28 22:03
不是判断大小的问题 是赋值错误了 你用key获取了生成的随机数 后面又用key获取输入的值 会覆盖掉的 应该 ...

谢谢大家,我已经改完了:
import random
times = 6
key = random.randint(1,100)
print("====================人生苦短,我用python====================")
guess = 0
print("我们来玩个游戏吧!")
print("在1至100中猜一猜我想的数是什么数吧,一共有六次机会哦:",end="")
while(guess != key) and (times > 0):
    temp = input()
    while not temp.isdigit():
        temp = input("抱歉,您的输入有误,请输入一个整数:")
    guess = int(temp)
    times = times - 1
    if guess == key:
        print("你真棒,爱你哦!")
    else:
        if guess > key:
            print("哥,大了大了!")
        else:
            print("嘿,小了小了!")
        if times > 0:
            print("再试一次吧:")
        else:
            print("好笨呀,机会用光咯!")
            print("答案是---")
            print(key)
print("游戏结束,拜拜!")
 楼主| TESLATAWER 发表于 2020-2-28 22:18
luanshils 发表于 2020-2-28 22:09
你这样难道不是一整排判断吗

其实也是哈
御剑把酒听秋雨 发表于 2020-2-28 22:27
本帖最后由 御剑把酒听秋雨 于 2020-2-28 22:46 编辑

没啥什么大问题,略微修改了下,你没有设置上下区间导致大于100或小于1的都能继续进行,这时候就不能走下去了。提醒更加友好了


[Python] 纯文本查看 复制代码
import random

times = 6
key = random.randint(1, 100)
print("====================人生苦短,我用python====================")
guess = 0
low = 1
high = 100
print("我们来玩个游戏吧!")
while (guess != key) and (times > 0):
    guess = int(input("在 %d 至 %d 中猜一猜我想的数是什么数吧,还有 %d 次机会哦:" % (low, high, times)))
    if guess < low or guess > high:
        continue
    times = times - 1
    if guess == key:
        print("你真棒!")
    else:
        if guess > key:
            high = guess
            print("哥,大了大了!")
        else:
            low = guess
            print("嘿,小了小了!")
        if times > 0:
            print("再试一次吧:")
        else:
            print("好笨呀,机会用光咯!")
            print("答案是---")
            print(key)
print("游戏结束,拜拜!")


E:\python3.6.5\myProject\venv\Scripts\python.exe E:/python3.6.5/myProject/guess.py
====================人生苦短,我用python====================
我们来玩个游戏吧!
在 1 至 100 中猜一猜我想的数是什么数吧,还有 6 次机会哦:50
嘿,小了小了!
再试一次吧:
在 50 至 100 中猜一猜我想的数是什么数吧,还有 5 次机会哦:75
哥,大了大了!
再试一次吧:
在 50 至 75 中猜一猜我想的数是什么数吧,还有 4 次机会哦:10001
在 50 至 75 中猜一猜我想的数是什么数吧,还有 4 次机会哦:0
在 50 至 75 中猜一猜我想的数是什么数吧,还有 4 次机会哦:62
哥,大了大了!
再试一次吧:
在 50 至 62 中猜一猜我想的数是什么数吧,还有 3 次机会哦:55
嘿,小了小了!
再试一次吧:
在 55 至 62 中猜一猜我想的数是什么数吧,还有 2 次机会哦:59
嘿,小了小了!
再试一次吧:
在 59 至 62 中猜一猜我想的数是什么数吧,还有 1 次机会哦:61
你真棒!
游戏结束,拜拜!

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
TESLATAWER + 1 + 1 用心讨论,共获提升!

查看全部评分

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 22:47

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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