簡體   English   中英

有關if的簡單python代碼

[英]A simple python code about if

在python 2下

    for i in range(6):
        for j in range(i):print i,j

    for i in range(6):
        for j in range(i):
            if j:print i,j

我注意到這兩個結果的區別,但是我仍然不明白如果j是什么意思。

for i in range(6):
    for j in range(i):
        if j:print i,j

上面的if語句確保當j的值為零時不打印i和j。 大多數數據類型在Python中都具有固有的布爾屬性。 對於數字,任何非零值都轉換為True,而零則轉換為False

關於真相測試的Python文檔:

http://docs.python.org/2/library/stdtypes.html#truth-value-testing

特別:

可以測試任何對象的真值,以便在if或while條件下使用。 以下值為“假”:

任何數字類型的零,例如0、0L,0.0

所有其他值都被認為是正確的

if j:將在j非零時觸發,而在j為0時不執行任何操作。

要了解if i:發生了什么,請嘗試此操作。

for i in range(-6,6):
    if i:
        print "%2d is evaluated as True"%i
    else:
        print "%2d is evaluated as False"%i

輸出:

-6 is evaluated as True
-5 is evaluated as True
-4 is evaluated as True
-3 is evaluated as True
-2 is evaluated as True
-1 is evaluated as True
 0 is evaluated as False    <----- Just "if 0:" is evaluated as "if False:"
 1 is evaluated as True
 2 is evaluated as True
 3 is evaluated as True
 4 is evaluated as True
 5 is evaluated as True

它檢查j是否為True。 數值0解釋為False,其他解釋為True。

第二個循環以j為條件,如果j不為假,即j <> 0,則僅打印j不等於0的值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM