这个语法有什么问题?

时间:2013-11-08 04:11:08

标签: python python-2.7 syntax syntax-error simulation

我正在编写代码来模拟x个掷骰子游戏,并且我编写了一些代码,这些代码可能会也可能不起作用。我还不确定但是我无法检查,因为当我完成编辑模块时,语法错误通知我我的代码没有意义。事情是,我觉得我之前已经使用过这种语法数百次了。错误消息为

File "<ipython-input-5-9e8dfc269e5b>", line 7
if roll=7 or roll=11:
       ^
SyntaxError: invalid syntax

它不喜欢等号吗?我不明白为什么python不能读这个。怎么了? 这里是模拟的所有代码,如果它有帮助

def crap(x):
from random import randint
win=0
loss=0
for i in range(x):
    roll=rand(2,12)
    if roll = 7 or roll = 11:
        win=win+1
    elif roll = 2 or roll = 3 or roll = 12:
        loss=loss+1
    elif roll=4 or roll=5 or roll=6 or roll=8 or roll=9 or roll=10:
        rolln=randint(2,12)
        while rolln =! 7 or rolln =! roll:
            rolln=randint(2,12)
        if rolln = 7:
            loss=loss+1
        elif rolln = roll:
            win=win+1

2 个答案:

答案 0 :(得分:3)

=是一个assignement运算符,你不能在if-elif条件下使用它。使用==进行相等性检查。

if roll == 7 or roll == 11:

其次,您还可以减少以下表达式:

elif roll==4 or roll==5 or roll==6 or roll==8 or roll==9 or roll==10:

为:

elif roll in (4, 5, 6, 8, 9 ,10):

答案 1 :(得分:2)

=用于为变量赋值。由于您正在尝试测试相等性,因此您应该使用==,例如

if roll == 7