Python三元运算符添加整数

时间:2017-01-09 13:32:23

标签: python python-3.x conditional-operator

我试图在python中进行三元运算,如果money == 100,则在数组中的项目中添加1,如果不是,则在另一项目中添加1。但我继续收到无效的语法错误。

 bills[2] += 1 if money == 100 else bills[1] += 1
                                             ^
SyntaxError: invalid syntax

这是代码。

def tickets(people):
change =0 
bills = [0,0,0]
for i,money in enumerate(people):
    if money == 25:
        change += 25
        bills[0] += 1
        str = "This is the %d th person with %d money" % (i,money)
        print(str)

    else:
        bills[2] += 1 if money == 100 else bills[1] += 1
        change -= (money -25)
        str = "This is the %d th person with %d money" % (i,money)
        print(str)
        print("change is %d" % change)

if change < 0:
    return "NO"
else:
    return "YES"

1 个答案:

答案 0 :(得分:5)

您不能将语句放在表达式中。 +=(作业)是一份声明。您只能在语句的特定部分内使用表达式(如赋值的右侧)。

可以在这里使用条件表达式,但是用它来选择要分配的索引:

bills[2 if money == 100 else 1] += 1

这是有效的,因为赋值目标中[...]订阅内的部分也采用表达式。