2016-07-26 1 views
0

Я БРЕНД новый для python, потому что это требует моя новая школа. Я привык к C++, поэтому я все еще изучаю веревки. Я пытаюсь сделать симулятор, играющий в кости, и я думал, что делаю все правильно, но мой код просто не сработает. Любые советы или руководства, которые помогут мне учиться, будут очень признательны. Вот мой код:Python 3 Dice Sim issue

import random 

def roll(sides=6): 
    num_rolled = random.randint(l,sides) 
    return num_rolled 

def main(): 
    sides = 6 
    rolling = True 
    while rolling: 
     roll_again = input("Ready to roll? ENTER=Roll. Q=Quit. ") 
    if roll_again.lower() != "q": 
     num_rolled = roll(sides) 
     print("You rolled a", num_rolled) 
    else: 
     rolling = False 

    print("Thanks for playing!") 

main() 

Это ошибка, я получаю:

Traceback (most recent call last): File "C:\Users\nomor\AppData\Local\Programs\Python\Python35-32\DiceRollingSim.py", line 20, in main() File "C:\Users\nomor\AppData\Local\Programs\Python\Python35-32\DiceRollingSim.py", line 13, in main num_rolled = roll(sides) File "C:\Users\nomor\AppData\Local\Programs\Python\Python35-32\DiceRollingSim.py", line 4, in roll num_rolled = random.randint(l,sides) NameError: name 'l' is not defined

+0

В чем проблема? Что не работает? – Pythonista

+0

Я понятия не имею, но это ошибка, которую я получаю: Traceback (последний последний вызов): Файл «C: \ Users \ nomor \ AppData \ Local \ Programs \ Python \ Python35-32 \ DiceRollingSim.py», строка 20, в основной() Файл "C: \ Users \ nomor \ AppData \ Local \ Programs \ Python \ Python35-32 \ DiceRollingSim.py", строка 13, в основных num_rolled = рулонных (сторон) Файл " C: \ Users \ nomor \ AppData \ Local \ Programs \ Python \ Python35-32 \ DiceRollingSim.py ", строка 4, в рулоне num_rolled = random.randint (l, sides) NameError: имя 'l' не определено – BradeyBunch

ответ

1

Для первого номера ...

num_rolled = random.randint(l,sides) 

l != 1. Вы помещаете «l» вместо номера 1. Python считает, что это переменная, которую вы нигде не определили -> полученную вами ошибку.

От documentation randint принимает два целых в качестве параметров:

random.randint(a, b) Return a random integer N such that a <= N <= b. Alias for randrange(a, b+1).

Далее, посмотрите на эти строки в своем коде.

while rolling: 
    roll_again = input("Ready to roll? ENTER=Roll. Q=Quit. ") 
if roll_again.lower() != "q": 
    num_rolled = roll(sides) 
    print("You rolled a", num_rolled) 
else: 
    rolling = False 

if-else часть должна быть отступы внутри время цикла:

while rolling: 
    roll_again = input("Ready to roll? ENTER=Roll. Q=Quit. ") 
    if roll_again.lower() != "q": 
     num_rolled = roll(sides) 
     print("You rolled a", num_rolled) 
    else: 
     rolling = False 
+1

Большое вам спасибо. Ошибка новичков? Это действительно помогло. – BradeyBunch

+0

Без проблем, рад, что я мог бы помочь! В какой-то момент мы все допустили ошибки новобранец: D – Pythonista