Python控制块中的语法错误

时间:2014-02-06 21:15:19

标签: python syntax

我是编程新手。我正在做一个六面骰子(公平)。这是我的代码:

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”发生了什么? 谢谢!

2 个答案:

答案 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(..),所以没有必要用这么重的逻辑来定义骰子。