Python 3 Dice Sim问题

时间:2016-07-26 00:56:20

标签: python python-3.x

我是brad的新手,因为我的新学校需要它。我习惯了c ++,所以我还在学习绳索。我试图制作一个骰子滚动模拟器,我以为我做的一切正常,但我的代码只是赢了工作。任何提示或指导,以帮助我学习将不胜感激。这是我的代码:

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()

这是我得到的错误:

  

回溯(最近一次调用最后一次):文件" C:\ Users \ nomor \ AppData \ Local \ Programs \ Python \ Python35-32 \ DiceRollingSim.py",第20行,在main()文件中" C:\ Users \ nomor \ AppData \ Local \ Programs \ Python \ Python35-32 \ DiceRollingSim.py",第13行,在主num_rolled = roll(sides)文件" C:\ Users \ nomor \ AppData \ Local \ Programs \ Python \ Python35-32 \ DiceRollingSim.py",第4行,in roll num_rolled = random.randint(l,sides)NameError:name' l'未定义

1 个答案:

答案 0 :(得分:1)

第一期......

num_rolled = random.randint(l,sides)

l != 1。你放了一个" l"而不是数字1.Python认为这是一个你还没有在任何地方定义的变量 - >你得到的错误。

来自documentation randint需要两个整数作为参数:

  

random.randint(a,b)   返回随机整数N,使得a <= N <= b。 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循环中缩进:

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