-3

我正在编写代码来模拟 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
4

2 回答 2

3

=是一个赋值运算符,你不能在 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):
于 2013-11-08T04:14:29.857 回答
2

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

if roll == 7
于 2013-11-08T04:12:33.993 回答