亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

python奇數或偶數函數中的問題。返回 True 不起作用

python奇數或偶數函數中的問題。返回 True 不起作用

慕無忌1623718 2021-07-16 18:01:15
def is_even(x) :      while x:           if x==0:               return True           elif x==1:               return False           x-=2print(is_even(5)) print(is_even(6))輸出 假 無如果x==0是替換x==2它工作正常。請解釋為什么返回 True 對x==0.
查看完整描述

3 回答

?
慕妹3146593

TA貢獻1820條經驗 獲得超9個贊

在最后一次迭代中,x減少到0所以while不進入循環,并終止函數。由于它沒有顯式返回任何內容,因此它隱式返回None,這是一個 false-y。


您可以if在while循環內使用單個并使用while's 條件本身來指示偶數:


def is_even(x) :

      while x:

           if x==1:

               return False

           x-=2

      return True


查看完整回答
反對 回復 2021-07-27
?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

因為當x == 0它未通過您的while x檢查時(0 不是真的),所以它會在再次檢查您的條件之前退出循環。


順便說一句,檢查奇偶校驗的正常方法是使用模數 ( %) 運算符。


x % 2 == 0  # is_even

x % 2 != 0  # is_odd


查看完整回答
反對 回復 2021-07-27
?
慕哥6287543

TA貢獻1831條經驗 獲得超10個贊

在 Python 中,整數有TrueFalse值。任何不是的整數0,將始終求值True0并將求值False。

在您的代碼中,您使用了一個while循環,該循環僅在后續語句計算為 時運行True。檢查時while x,如果的值x0(由于循環內部的計算),則您的語句將與 相同while False,不會運行內部代碼。

為避免此問題,您可以使用該modulo操作,它為您提供操作的其余部分。因此,x % 2將返回0,如果x是偶數,1如果是奇數。您可以進行檢查并使用更少的操作在更少的行中返回正確的值。

return (x % 2 == 0)

True如果沒有余數,False則上面的語句將返回,如果有。


查看完整回答
反對 回復 2021-07-27
  • 3 回答
  • 0 關注
  • 276 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號