我使用while循环,直到python抛出的随机数与输入匹配,为什么它不工作

我使用while循环,直到python抛出的随机数与输入匹配,为什么它不工作,python,python-3.x,Python,Python 3.x,我让用户输入一个3位数字,让python抛出一个随机的3位数字,试着看看随机数字何时可以匹配输入。然而,每次我在cmd上运行它时,它都会打印“Python太累了”,这是我设置的一条语句,以防止它无限循环。我确实这样做了,直到我添加了这个尝试次数限制 import random my_num = int(input('Type your 3-digit int number: ')) if my_num >= 100 and my_num < 1000: attempt =

我让用户输入一个3位数字,让python抛出一个随机的3位数字,试着看看随机数字何时可以匹配输入。然而,每次我在cmd上运行它时,它都会打印“Python太累了”,这是我设置的一条语句,以防止它无限循环。我确实这样做了,直到我添加了这个尝试次数限制

import random

my_num = int(input('Type your 3-digit int number: '))

if my_num >= 100 and my_num < 1000:
    attempt = 0

    my_lottery = []
    my_lottery.append(int(num) for num in str(my_num))

    def lottery_throw():
        lottery = []
        i=0
        while i<3:
            lottery.append(random.randint(1,9))
            i+=1
            return(lottery)

    def check():
        global boo
        lottery_throw()
        if lottery == my_lottery:
            boo = 'true'
        else:
            boo = 'false'

    while attempt < 100000:
        check()
        attempt += 1
        if boo == 'true':
            print('you win')
            print(attempt)
            break
        elif attempt >= 100000:
            print('python is too tired')
            break

else:
    print('You must enter a 3-digit number.')
在cmd上运行它,每次我运行它时,它都会返回“Python太累了”


但可能的组合9C3的数量只有84个。python不太可能真的抛出了一个正确的数字。我怎样才能解决这个问题?

我不知道你做了什么,但我无法解决它

以下是我的观点:

num=input'键入您的三位数整数:' 对于10万范围内的我: 如果00+strrandom.randint0999[-3::==num: 打印您在尝试%i%i时获胜 你赢了吗 打破 其他:打印“python太累了” 错误 除非您确实需要全局变量,否则不要使用它们。正如您所看到的,写入全局变量并不符合我们的要求 012是一个有效的3位数字 如果将一个列表附加到另一个列表中,则会在另一个列表中得到一个嵌套列表:[[1,2,3]] 既然可以自己创建数字,为什么还要创建每个数字的列表? for循环应用于固定的迭代次数,而当需要从循环返回更复杂的条件时,则应使用for循环。 使用return时不应使用括号,因为它们是多余的。return不是函数 True和False是布尔值,不要使用True和False字符串来表示它们。 如果条件返回true,则伪代码中的返回false与返回条件相同 for循环还可以有一个else子句,只有在未找到中断时才执行该子句。 解决方案 随机输入 my_num=IntInput键入您的3位整数:
当你调试这个时,如果0,你发现的是行中boo的值,如果boo='true'?@Nobody 9c3是84,但它不是可能的彩票数量,它将是9^3,因为你不允许零,顺便说一句,这是729的一个错误。我的回答中还列出了其他错误,但我只是想知道9c3在这里没有任何意义。由于:-操纵字符串而不是数字-解决他的问题,但不尝试查看失败的原因仍然python每次都太累了…@没有人对我的错误表示歉意,忘记了一些括号。现在修好了