在python中使用random.randint帮助

2024-04-29 05:56:14 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的代码是我模拟彩票的尝试。

import random

def lottery(numbers):
    lottoNumbers = [randint('0,100') for count in range(3)]

    if numbers == lottoNumbers:
        print('YOU WIN $10,000')
    else:
        print('YOU LOSE,DUN DUN DUNNN!')
    return numbers


def main():
    numbers = int(input('Enter a number: '))
    if numbers == lottoNumbers:
        numbers = lottery(numbers)
    else:
        numbers = lottery(numbers)




main()

嘿,伙计们,你们的帮助让我走了这么远。我正在试着写代码,以便随机选择3个乐透号码。然后用户必须输入他/她自己的乐透号码中的3个。如果他们3个数字都正确,那么他们就赢得了全部奖品;如果他们3个数字的顺序不正确,他们就赢得了部分奖品。很明显,如果他们猜错了,那么一份书面声明就会说明这一点。我所困惑的是如何编写代码,以便用户可以输入3个号码来尝试匹配随机彩票号码。我还想在用户输入他/她的选择后打印3个彩票号码。有什么想法吗?

谢谢大家的帮助。


Tags: 代码用户youifmaindef数字else
3条回答

对于函数中参数的作用,您似乎有点困惑。你说过你的randm函数接受参数“number”,但实际上你还没有在任何地方使用它。下一次出现数字时,您已经为它分配了一个全新的值,因此传递给randm的任何值实际上都不会被使用。

另外,当x未在函数中赋值时,函数试图返回x。要么已经定义了一个名为x的全局变量,在这种情况下,函数将只返回该变量,要么函数将由于找不到变量x而失败

这里有一个简单的例子,你可以把它们的三个数字作为一个列表作为参数传递给函数。

import random

theirNumbers=[5,24,67]

def checkNumbers(theirNumbers):
    lottoNumbers = []
    for count in range(3)
            lottoNumbers.append(random.randint(0,100))
    winning = True
    for number in theirNumbers:
    if not each in lottoNumbers: winning=False
    if winning == True: print("Winner!")

您的实现有一些错误,举几个例子:

如果试图将函数randm的输出与x进行比较,则需要在函数中包含一个返回值,如下所示:

def randm():
    return return_value

您似乎正在打印所有值,但未将其存储,最后您将只打印最后一个值,您应尝试将其存储在如下列表中:

list_name = [randint(0,100) for x in range(x)]

这将在列表中生成randint(0,100)x次,这将允许您稍后访问所有值。

为了使代码尽可能接近您正在尝试的内容,我将:

import random

def randm(user_numbers):
    number = []
    for count in range(3):
        number.append(random.randint(0, 100))
    print(number)
    return user_numbers == number

if randm(x):
    print('WINNER')

如果你想用一种非常恶毒的方式来完成这项任务, 你可能想试试这样的方法:

from random import randint

def doLotto(numbers):
    # make the lotto number list
    lottoNumbers = [randint(0,100) for x in range(len(numbers))]

    # check to see if the numbers were equal to the lotto numbers
    if numbers == lottoNumbers:
        print("You are WinRar!")
    else:
        print("You Lose!")

我从您的代码(特别是print()中)假设您正在使用Python3.x+

试着把你的全部代码都发出去。另外,在发布时请注意缩进,在那里,函数的定义看起来是空的。

我会这样做:

import random

def lottery():
  win = True
  for i in range(3):
    guess = random.randint(1,100)
    if int(raw_input("Please enter a number...")) != guess:
      win = False
      break

  return win

相关问题 更多 >