Я пытаюсь сгенерировать список случайных чисел в строке, основанной на пользовательском вводе в Python - PullRequest
0 голосов
/ 05 октября 2018

Я пытаюсь сделать простую программу броска костей для DnD, и я пытаюсь сделать так, чтобы вы могли бросать любое количество костей, и он показывает вам список бросков.Я все еще немного заржавел на питоне и столкнулся с трудностями.Вот что у меня есть (обратите внимание: это для 4-х сторонних кубиков):

List = []

def Dice():
     List = List + [random.randint(1, 4)]
     return List

while multiplier > 0:
     Dice()
     multiplier = multiplier - 1   #multiplier is how many times you rolled the dice
print(Dice())

Всякий раз, когда он запускается, я получаю это сообщение об ошибке:

Traceback (most recent call last):
   File "C:/Users/Un-Local User/Desktop/Python/Dice Sim.py", line 68, in <module>
      Dice()
   File "C:/Users/Un-Local User/Desktop/Python/Dice Sim.py", line 5, in Dice
      List = List + [random.randint(1, 4)]
UnboundLocalError: local variable 'List' referenced before assignment

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Вы должны сделать переменную List global, чтобы использовать или изменить их в функции:

import random
global List
List = []

def Dice():
    global List
    List = List + [random.randint(1, 4)]
    return List

while multiplier > 0:
    Dice()
    multiplier = multiplier - 1   #multiplier is how many times you rolled the dice
print(Dice())
0 голосов
/ 05 октября 2018

Использование append Чтение здесь

Для несвязанной ошибки, вот хорошее объяснение

from random import randint

List = []
def Dice():
     List.append(randint(1, 4))
     return List

multiplier = 4
while multiplier > 0:
     Dice()
     multiplier = multiplier - 1   #multiplier is how many times you rolled the dice

print(Dice())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...