【发布时间】:2021-02-05 11:09:43
【问题描述】:
我有一个以None 开头的值,但应该成为int,并在循环中递增。我尝试使用内联 if 来检查它是否为 None ,否则增加。但是内联 if 语句抛出:
x = None
for _ in range(5):
if x is None:
x = 1
else:
x +=1
print(x)
x= None
for _ in range(5):
x = 1 if x is None else +=1 #SyntaxError: invalid syntax
x +=1 if x is not None else 1 #TypeError unsupported operand type(s) for +=: 'NoneType' and 'int'
print(x)
如果您不明确使用 += 和 operator 和 x,它会起作用:x = 1 if x is None else x+1。但我在徘徊是否或如何在内联 if 中使用+=。
【问题讨论】:
-
所谓的“inline if”是一个条件表达式。
+=语句不是表达式。 -
那为什么不以
x = 0开头呢? -
@UnholySheep
x是来自第三方模块的对象的属性。 -
@ChristopherPeisert 确实如此!但我还需要它不是实际的“内联 if”的信息。
标签: python conditional-operator