我是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'未定义
答案 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