吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1022|回复: 11
收起左侧

[求助] 写了一个判断数字的游戏,但是参数无法跳过去

[复制链接]
今晚侯公子买单 发表于 2021-9-17 15:56
[Python] 纯文本查看 复制代码
import random
from tkinter import messagebox

print("开启猜数字游戏!!!,请输入一个1-100的数字")
num = int(input("您的数字为:"))
num1 = random.randrange(0, 100, 1)
list = [1, 100]
while num != num1:
    if (num1 > num):
        list[0] = num
        print("请在", list[0], "-", list[1], "之间选择")
        num2 = int(input(""))
        while list[0] <= num2 <= list[1]:
            if list[0] <= num2 <= list[1]:
                print("1")
                num = num2
                break
            else:
                print(list)
                print("不在数组中,请重新输入")
                num1 = int(input(""))


    elif num1 < num:
        list[1] = num
        print("请在", list[0], "-", list[1], "之间选择")
        num2 = int(input(""))
        while list[0] <= num2 <= list[1]:
            if list[0] <= num1 <= list[1]:
                print("1")
                num = num2
                break
            else:
                print(list)
                print("不在数组中,请重新输入")
                num1 = int(input(""))


print("爆炸了,正确数字为", num1)
list2 = ["倒立喝酒", "喝完一瓶1L可乐", "3天不能吃饭", "10天不能洗澡"]
chengfu = random.randrange(0, 3, 1)

print("由于你爆炸了,进入随机惩罚,惩罚方案有倒立喝酒,喝完一瓶1L可乐,3天不能吃饭,10天不能洗澡,你的随机惩罚为:", list2[chengfu])
input()

在判断list[0] <= num2 <= list[1]:这个里面 无法判断是否在这个数组里面,print("不在数组中,请重新输入")这句一直无法跳过去,麻烦大佬看下啥问题

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

 楼主| 今晚侯公子买单 发表于 2021-9-17 16:03
[Python] 纯文本查看 复制代码
import random
from tkinter import messagebox

print("开启猜数字游戏!!!,请输入一个1-100的数字")
num = int(input("您的数字为:"))
num1 = random.randrange(0, 100, 1)
list = [1, 100]
while num != num1:
    if (num1 > num):
        list[0] = num
        print("请在", list[0], "-", list[1], "之间选择")
        num2 = int(input(""))
        while list[0] <= num2 <= list[1]:
            if list[0] <= num2 <= list[1]:

                num = num2
                break
        else:
            print(list)
            print("不在数组中,请重新输入")



    elif num1 < num:
        list[1] = num
        print("请在", list[0], "-", list[1], "之间选择")
        num2 = int(input(""))
        while list[0] <= num2 <= list[1]:
            if list[0] <= num1 <= list[1]:
                num = num2
                break
        else:
            print(list)
            print("不在数组中,请重新输入")



print("爆炸了,正确数字为", num1)
list2 = ["倒立喝酒", "喝完一瓶1L可乐", "3天不能吃饭", "10天不能洗澡"]
chengfu = random.randrange(0, 3, 1)

print("由于你爆炸了,进入随机惩罚,惩罚方案有倒立喝酒,喝完一瓶1L可乐,3天不能吃饭,10天不能洗澡,你的随机惩罚为:", list2[chengfu])
input()

第二版,第一版的问题找到了,看下有什么可以代码优化的?刚学了2天的py语言
SDU123 发表于 2021-9-17 16:08
[Python] 纯文本查看 复制代码
if list[0] <= num1 <= list[1]:
    while list[0] <= num2 <= list[1]:
        print("1")
        num = num2
        break
else:
    print(list)
    print("不在数组中,请重新输入")
num1 = int(input(""))



把while放在if里面,
我刚学了列表,
你可以试一试
 楼主| 今晚侯公子买单 发表于 2021-9-17 16:50
SDU123 发表于 2021-9-17 16:08
[mw_shl_code=python,true]if list[0]

问题我解决了 看我发的第二版,不过感觉代码重复的有点多,感觉有优化的写法,不过我只学了2天,没办法改
lorzl 发表于 2021-9-17 16:55
优化了一点,细心的人才可以发现
[Python] 纯文本查看 复制代码
import random
from tkinter import messagebox
 
print("开启猜数字游戏!!!,请输入一个1-100的数字")
num = int(input("您的数字为:"))
num1 = random.randrange(0, 100, 1)
list = [1, 100]
while num != num1:
    if (num1 > num):
        list[0] = num
        print("请在", list[0], "-", list[1], "之间选择")
        num2 = int(input(""))
        while list[0] <= num2 <= list[1]:
            if list[0] <= num2 <= list[1]:
 
                num = num2
                break
        else:
            print(list)
            print("不在数组中,请重新输入")
 
 
 
    elif num1 < num:
        list[1] = num
        print("请在", list[0], "-", list[1], "之间选择")
        num2 = int(input(""))
        while list[0] <= num2 <= list[1]:
            if list[0] <= num1 <= list[1]:
                num = num2
                break
        else:
            print(list)
            print("不在数组中,请重新输入")
 
 
 
print("爆炸了,正确数字为", num1)
list2 = ["倒立喝酒", "喝完一瓶1L可乐", "3天不能吃饭", "10天不能洗澡"]
chengfa = random.randrange(0, 3, 1)
 
print("由于你爆炸了,进入随机惩罚,惩罚方案有倒立喝酒,喝完一瓶1L可乐,3天不能吃饭,10天不能洗澡,你的随机惩罚为:", list2[chengfa ])
input()
SDU123 发表于 2021-9-17 16:56
今晚侯公子买单 发表于 2021-9-17 16:50
问题我解决了 看我发的第二版,不过感觉代码重复的有点多,感觉有优化的写法,不过我只学了2天,没办法改

我模块还没学,函数才刚学,只能在你的基础上改了
junjie0927 发表于 2021-9-17 17:00
本帖最后由 junjie0927 于 2021-9-17 17:05 编辑

if判断尽量简化。

random.choice是随机选择。

没必要让random.randint(1,3)生成数字再在list2中匹配.

直接让random.choice在list2中随机选择即可。
[Python] 纯文本查看 复制代码
import random
import time

print("开启猜数字游戏!!!,请输入一个1-100的数字")

num1 = random.randrange(0, 100, 1)

list1 = [1,100]

list2 = ["倒立喝酒", "喝完一瓶1L可乐", "3天不能吃饭", "10天不能洗澡"]

while True:

    num = int(input('请在%s至%s之间选择:'%(list1[0],list1[1])))

    if num == num1:

        break

    else:

        if list1[0] < num < list1[1]:

            if num > num1:

                list1[1] = num

            else:

                list1[0] = num

        else:

            print('不在数组中!')

print("爆炸了,正确数字为", num1)

time.sleep(1)
 
print("由于你爆炸了,进入随机惩罚,惩罚方案有倒立喝酒,喝完一瓶1L可乐,3天不能吃饭,10天不能洗澡,你的随机惩罚为:", random.choice(list2))
junjie0927 发表于 2021-9-17 17:03
junjie0927 发表于 2021-9-17 17:00
[mw_shl_code=python,true]import random
import time

if判断尽量简化!
知心 发表于 2021-9-17 17:10
不能连着写,编程与数学有些区别。这个你得这么写 if num2>=list[0] and num2<=list[1]:
 楼主| 今晚侯公子买单 发表于 2021-9-17 17:12
junjie0927 发表于 2021-9-17 17:00
if判断尽量简化。

random.choice是随机选择。

大神牛逼,学这个多久了?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-25 23:37

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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