Ошибка при использовании `random.randint`" слишком много позиционных аргументов " - PullRequest
0 голосов
/ 13 января 2020

У меня были проблемы при звонке в random.randint (). Я получил следующее сообщение об ошибке в моей программе. Я использую python 3,8, и я не уверен, почему это происходит. Ниже приведено сообщение об ошибке.

Traceback (most recent call last):
  File "C:\Users\W\Desktop\All.py files\droll.py", line 13, in <module>
    roll=random.randint(1,
TypeError: randint() takes 3 positional arguments but 7 were given

Вот мой код

import random
def rule():
    print ("Roll the die!")
    print ("If you get a 1, you lose,")
    print ("And if you get a 6, you win.")
    print ("Anything inbetween does not count.")

rule()
#Main game loop
while True:
    q = input ("Are you ready to roll? (Y/N)").lower().strip()
    if q == "y":
        roll=random.randint(1,
                            2,
                            3,
                            4,
                            5,
                            6)
        if (roll == 1):
            print ("You got a 1! You lost!")
        if (roll == 6):
            print ("You got a 6! You won!")
        else:
            print ("You got a middle roll!")
    if q == "n":
        print ("That's unfortunate.")

, если кто-то может помочь решить эту проблему, было бы очень признательно. Я не уверен, есть ли новый способ написания случайных кодов, и это некоторое время беспокоило меня, поскольку даже самый простой код не работал бы. Я попытался решить эту проблему, добавив еще несколько random.randints и используя операторы if и if, однако иногда это приводило к 2 ответам или пробелу. Если у кого-то есть ответ, еще раз, я был бы очень признателен за помощь. Спасибо

Ответы [ 2 ]

1 голос
/ 13 января 2020

random.randint принимает два аргумента - нижнюю и верхнюю.

Попробуйте

roll = random.randint(1,6)

вместо

roll = random.randint(1,
                      2,
                      3,
                      4,
                      5,
                      6)

Описание random.randint в документации Python.

0 голосов
/ 13 января 2020

Да, существует несколько способов генерации случайных (и псевдослучайных) чисел, обычно используемые функции включают в себя:

  1. choice (): - используется для генерации случайного числа из контейнера.

    roll = random.choice([1, 2, 3, 4, 5, 6])

  2. randrange (начало, конец, шаг): - используется для генерации случайного числа в указанном диапазоне (исключая конец)

    roll = random.randrange(1, 7, 1)

  3. randint (): - Еще один способ ...

    roll = random.randint(1,6)

...