我有這個密碼
firstId = True
for x in [1,2,3,4,5]:
firstId = False if firstId else print(str(x)+ " " + str(firstId))
print ("What is happening here ???")
firstId = True
for x in [1,2,3,4,5]:
if firstId:
firstId = False
else:
print(str(x)+ " " + str(firstId))
我有這個輸出
2 False
3 None
4 None
5 None
What is happening here ???
2 False
3 False
4 False
5 False
根據我的理解,兩個if語句的行為應該是相同的way.But,布爾值不是。我不明白為什么布爾值會變成無。有人能解釋發生了什么事嗎?
This:
與
i.e.
它總是給
firstId
賦值,右邊的條件表達式決定該值是什么。在
else
情況下,該值為None,因為print(...)
返回None。條件表達式不是one-lineif語句。這是一個不同的結構,用于不同的目的。