【发布时间】:2014-05-11 03:16:09
【问题描述】:
我必须为我的计算机课做一个掷骰子程序。我选择用 Python 编写我的。但是,当我执行它时,它会打印 1000 次数字列表。这是代码。任何帮助将不胜感激。
`
import random
def rollDie():
one = 0
two = 0
three = 0
four = 0
five = 0
six = 0
seven = 0
eight = 0
nine = 0
ten = 0
eleven = 0
twelve = 0
for i in range(0, 1000):
roll = int(random.randint(1,6)) + (random.randint(1,6))
if roll == 2:
two = two+1
elif roll == 3:
three = three+1
elif roll == 4:
four = four+1
elif roll == 5:
five = five+1
elif roll == 6:
six = six+1
elif roll == 7:
seven = six+1
elif roll == 8:
eight = eight+1
elif roll == 9:
nine = nine+1
elif roll == 10:
ten = ten+1
elif roll == 11:
eleven = eleven+1
elif roll == 12:
twelve = twelve+1
print "2:%s" % two
print "3:%s" % three
print "4:%s" % four
print "5:%s" % five
print "6:%s" % six
print "7:%s" % seven
print "8:%s" % eight
print "9:%s" % nine
print "10:%s" % ten
print "11:%s" % eleven
print "12:%s" % twelve
rollDie()
`
谢谢!
【问题讨论】:
-
仅供参考,这里有一个错误:
seven = six+1。我想你想要seven + 1那里。 -
另外,该程序完全按照您在此处发布的方式运行,只打印一次数字列表。
-
100% 确定!我想知道您是否在文本编辑器中使用制表符而不是空格,这导致 Python 解释的缩进与您在文件中看到的不同。尝试将 .py 文件中的所有制表符转换为空格,然后重试。
-
这段代码只是尖叫使用列表。如果您还没有涵盖列表,请忽略此评论,否则此问题是禁止的。但是使用列表,一次模拟掷 10 个骰子会更短,也更容易。
-
是的,使用这样的命名变量真的很糟糕。使用大小为 12 的列表或以整数 2 到 12 作为键的字典...
标签: python indentation dice