電梯自我的豬豬 2019-4-22 10:11
def is_even(x):
if x == 0:
return True
else:
return is_odd(x-1)
def is_odd(x):
return not is_even(x)
print(is_odd(1))
print(is_even(1))
點解print(is_odd(1))最後係True
點解print(is_even(1))最後係false
第一,is_odd(1):
(is_odd(1))去左一次not is_even(1)然後返返去is_odd(x-1)度減左1
跟住變左0去到not is_even度,本來係0係True,not將佢變返False
第二,is_even(1):
佢唔係0,一開始已經去is_odd(x-1)度減左1,變0,去返not is_even,本來係0,係True,not將佢變返False
咁點解,print(is_odd(1))係True,print(is_even(1))係False,唔係應該兩個一樣咩?
鄉貢仁 2019-4-22 11:30
[url=https://pymotw.com/2/trace/][u]追蹤[/u][/url]
[[i] 本帖最後由 鄉貢仁 於 2019-4-28 03:32 PM 編輯 [/i]]
fx360bx 2019-4-22 12:43
print(is_odd(1))
is_odd(1)
not is_even(1)
not is_odd(1-1)
not not is_even(0)
not not True
print(is_even(1)) 就 not 少一次,所以 False,[color=#ff0000]唔明點解你要重新計多次,即使你計錯左 is_odd(1),但擺明佢同 is_even(1) 既分別就係一個 not operator,又點可能一樣[/color]?
[[i] 本帖最後由 fx360bx 於 2019-4-22 12:59 PM 編輯 [/i]]
電梯自我的豬豬 2019-4-23 08:53
[quote]原帖由 [i]fx360bx[/i] 於 2019-4-22 12:43 PM 發表 [url=https://www.discuss.com.hk/redirect.php?goto=findpost&pid=498170386&ptid=28172614][img]https://www.discuss.com.hk/images/common/back.gif[/img][/url]
print(is_odd(1))
is_odd(1)
not is_even(1)
not is_odd(1-1)
not not is_even(0)
not not True
print(is_even(1)) 就 not 少一次,所以 False,唔明點解你要重新計多次,即使你計錯左 is_odd(1),但擺明佢同 is_even(1) 既分別就係一個 not operato ... [/quote]
原來is_even(1)已經not第一次,並且一路累積,明喇,唔該巴打