我的問題是關於這個語句我在線閱讀的內容沿着「if語句後面的行」,並且與「如果陳述「將始終運行,而不管'陳述'是真是假。」我會用下面的例子來展示。在Python中的「if」語句中表現怪異的返回語句
所以我有這個程序需要兩個數字作爲輸入並返回兩個輸入中的較大者。
因此,第一個例子中的第四行和第五行代碼與「if a> b:」縮進級別應該始終按照上面的語句運行。
例子#1
def bigger(a,b):
if a>b:
x = "the first number is bigger"
x = "the second number is bigger"
return x
print bigger(9,7)
Python的版畫「第二個數字越大,」所以代碼是根據我在一開始寫道,原始語句工作。即使這是錯誤的,因爲9> 7。
但是,在我碰上混亂是當返回語句在下面的示例中被使用:
實施例#2
def bigger(a,b):
if a>b:
return "the first number is bigger"
return "the second number is bigger"
print bigger(9,7)
這一次,Python的打印「所述第一數量更大的」這是真的,因爲9> 7
我的困惑:不應該在第二個例子中的第四行代碼,「返回」第二個數字是更大的「」,總是運行,因爲它是在相同的縮進級別的「如果陳述「,就像我們在例子#1中看到的那樣?
看起來代碼中的兩個例子相互矛盾,因爲在例子#1中,Python認識到「第二個數字更大」的行並打印該行,但在例子#2中,Python忽略了「第二個數字更大「行並打印其他」第一個數字更大「的行。
我試圖讓這個儘可能清楚。由於
沒有什麼奇怪的。通過設計返回從Python立即返回函數。 – paisanco
@paisanco謝謝。我從來不知道返回立即返回。我以爲它沒有立即返回,所以當然我感到困惑。你懂得越多! – thedongthrowaway