python boolean_如何在Python中使用boolean’和’
本問題已經有最佳答案,請猛點這里訪問。
在c中,我們可以使用&&(布爾和),如下所示:
int i = 5;
int ii = 10;
if(i == 5 && ii == 10) {
Console.WriteLine("i is 5, and ii is 10");
}
Console.ReadKey(true);
但是用python試試:
i = 5
ii = 10
if i == 5 && ii == 10:
print"i is 5 and ii is 10";
我得到一個錯誤:SyntaxError: invalid syntax。
如果我使用單個&,至少不會出現語法錯誤。如何在python中執行布爾值&&?
試試這個:
i = 5
ii = 10
if i == 5 and ii == 10:
print"i is 5 and ii is 10"
編輯:哦,你在最后一行不需要分號(編輯將其從我的代碼中刪除)。
如果我們想合并代碼行,分號很有用。
不過,組合線條不是"Python式"的方式
正如羅德里戈所說,雖然你可以組合線條,但它不是"Python式的"。因為在這個特殊的例子中,分號根本沒有作用,所以我對它的冗余性做了評論。我認為提問者對python來說是個新手,不想夸大我的答案,"pythonic"是什么,分號是什么。
如前所述,"&;"在python中執行按位和操作,就像在c中一樣。and是相當于&&運算符的適當值。
由于我們處理的是布爾型(i == 5是True,ii == 10也是True,所以您可能會想,為什么這兩種方法都不起作用(真值被視為整數仍然意味著真值,真值是真值),或者拋出異常(例如,禁止對布爾型執行位操作)。
原因是運算符優先級。"and操作符比==綁定得更松散,因此表達式"i==5 and ii==10相當于"EDOCX1〔13]
但是,按位&比"==優先級更高(因為您不希望像"a & 0xff == ch這樣的表達式表示"a & (0xff == ch)這樣的表達式),因此該表達式實際上被解釋為:
if i == (5 & ii) == 10:
這就是使用python的操作符chaining的意思:i i和5的值等于i和10嗎?顯然,這永遠不會是真的。
如果你用括號來強制優先級,你會得到(表面上)正確的答案,所以:
if (i==5) & (ii=10)
會導致報表被打印。但是,這是錯誤的,因為"EDOCX1"(0)與"EDOCX1"(1)有許多不同的語義(優先級、簡短的推理、帶有整型參數的行為等),所以幸運的是,您在這里抓住了這個問題,而不是被愚弄,直到它產生不那么明顯的錯誤為止。
要使用的正確運算符是關鍵字"或"和"and",在您的示例中,正確的表示方法是:
if i == 5 and ii == 10:
print"i is 5 and ii is 10"
您可以在語言引用的"布爾操作"部分中引用詳細信息。
每當我看到and時,我都會問我的括號。
您也可以將它們作為一對進行測試。
if (i,ii)==(5,10):
print"i is 5 and ii is 10"
我的書呆子想指出你應該說"tuple"而不是"couple",但我知道你的意思。:)
一對不是一對嗎?
&用于位比較。用and代替。順便說一句,在print語句的末尾不需要分號。
在python中,使用and而不是&&,如下所示:
#!/usr/bin/python
foo = True;
bar = True;
if foo and bar:
print"both are true";
印刷品:
both are true
更準確地說,我們將"&;&;"拼寫為"and"。我們將"&;"拼寫為"&;",在C和python中,它們執行的是位操作,而不是邏輯操作。
當然,你是對的。道歉。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的python boolean_如何在Python中使用boolean’和’的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《大数据》2021年第5期目次摘要
- 下一篇: XCTF-Reverse:game(涉及