當我運行這段代碼時,什麼也沒有顯示出來。例如,我打電話給ind(1, [1, 2, 3])
,但我沒有得到整數13
。Python中的運算符不起作用
def ind(e, L):
if (e in L == True):
print('13')
else:
print('12')
當我運行這段代碼時,什麼也沒有顯示出來。例如,我打電話給ind(1, [1, 2, 3])
,但我沒有得到整數13
。Python中的運算符不起作用
def ind(e, L):
if (e in L == True):
print('13')
else:
print('12')
運算符優先級。如果你把(
和)
周圍e in L
它會工作:
def ind(e, L):
if ((e in L) == True):
print('13')
else:
print('12')
ind(1, [1, 2, 3])
但測試的True
可以做到的(並且是通常的成語),而不True
def ind(e, L):
if (e in L):
print('13')
else:
print('12')
ind(1, [1, 2, 3])
編輯完成的:作爲獎勵你甚至可以使用True
和False
來保持/取消操作。隨着你的榜樣:
def ind(e, L):
print('13' * (e in L) or '12')
ind(1, [1, 2, 3])
ind(4, [1, 2, 3])
這。OUPUTS:
13
12
因爲e in L
已首先評估,以True
和13 * True
是13
。不查找布爾表達式的第二部分。
但隨着4
調用函數時,則將發生以下情況:
`13` * (e in L) or '12` -> `13` * False or '12' -> '' or '12' -> 12
becase的和空字符串的計算結果爲False
太多,因此返回or
布爾表達式的第二部分。
儘管在這裏可以使用''13'*(e,L)或'12',但對於不支持「*」的操作數起作用的更一般的解決方案是'在L和'13'或'12'中。或者,使用一個條件表達式使其更具可讀性:「'13''如果在L'else'12'中。另一種選擇是'('12','13')[儘管L'],儘管這可能是選項中最不可讀的。 –
應該
def ind(e, L):
if (e in L):
print ('13')
else:
print ('12')
這裏IND(1,[1,2,3])將打印13
這是我的證明,上面的語法在我的機器上運行:
我建議你測試一下。 – TigerhawkT3
1)您不能將Python關鍵字'in'用作函數名稱(或任何其他名稱)。 2)你不需要圍繞'if'條件的括號,並且忽略它們是正常的Python風格。 –
@ TigerhawkT3我在回答問題之前運行了整個事情。 –
實際上你應該會收到一個錯誤。在Python中,它是「真」,而不是「真」。 – thefourtheye
'L'就足夠了 –
'如果L:'中的e就夠了。 –