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