我是编程新手。我正在做一个六面骰子(公平)。这是我的代码:
import random
def dice(rolls):
results=[]
for i in range(rolls):
random.random()=n
if n<= .17:
results.append('1')
elif n<= .33:
results.append('2')
elif n<= .5:
results.append('3')
elif n<= .67:
results.append('4')
elif n<= .83:
results,append('5')
else n<= 1:
results.append('6')
return results
基本上我试图生成0到1之间的随机数。如果它介于这些类别之间,我希望它在附加列表中返回该数字。我收到错误“SyntaxError:invalid syntax”IDLE然后从“else n&lt; = 1:”突出显示“n”发生了什么? 谢谢!
答案 0 :(得分:3)
else n<= 1:
需要:
elif n<= 1:
或只是:
else:
否则没有条件,如果没有满足其他条件,那就是'全能'
答案 1 :(得分:1)
这是更多pythonic版本:
import random
def dice(rolls):
return [random.randrange(6)+1 for i in range(rolls)]
甚至
import random
dice = lambda rolls: [random.randrange(6)+1 for i in range(rolls)]
random具有这种情况的函数,它返回指定范围内的int值 - &gt; randrange(..)
,所以没有必要用这么重的逻辑来定义骰子。