有人可以解釋爲什麼這個代碼只打印6? :)返回語句與打印語句?
def func(x):
result = 0
for i in range(x):
result = result + i
return result
print(func(4))
有人可以解釋爲什麼這個代碼只打印6? :)返回語句與打印語句?
def func(x):
result = 0
for i in range(x):
result = result + i
return result
print(func(4))
首先,因爲在這個問題你的代碼沒有被格式化正確的,我不能編輯它由於掛起的編輯(我敢打賭,修復它),我要去承擔你的代碼應該看起來像這樣:
def func(x):
result = 0
for i in range(x):
result = result + i
return result
print(func(4))
讓我們一步一步分解它。您的打印將打電話func
,給它4號,然後打印任何數字出來。所以控制跳轉到func
並開始在那裏處理,編號爲4的x
。您將結果初始化爲0,然後輸入循環。 for i in range(x)
會給你一個號碼列表[0, 1, 2, 3]
(實際上不是一個列表,但我們可以用這種方式對待這個簡單的解釋)。對於該列表中的每個號碼i
,您將其添加到當前值result
。所以result
經過下列步驟:
result = 0 + 0
result = 0 + 1
result = 1 + 2
result = 3 + 3
的result
的最終值是6,其被返回,並打印。那就是你的6來自哪裏。如果你打電話給func(5)
,你會得到10,因爲它經歷了相同的步驟,但增加了4個相同的計算。該功能的作用是將0
中的數字加到x - 1
(至少對於正整數輸入)。
哦,我明白了。我只是假定它會返回所有結果,而不僅僅是最後一個。所以,我期望看到: 0 1 3 6。 – Prince
因爲這就是它應該做的。它打印函數的返回值。範圍是唯一的,所以1 + 2 + 3 = 6 – Li357
試試'print(func(1))'。 – Zety