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

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

應該檢查每個數字并得到錯誤的輸出

應該檢查每個數字并得到錯誤的輸出

Smart貓小萌 2022-07-12 17:38:48
我有一個任務:在輸入 [x;y] 上有一個范圍,然后我應該檢查該范圍內的每個數字并檢查數字中的每個數字。如果它很奇怪,我應該打印它,例如:3, 20 我應該打印 4,6,8,20def check(num):if int(num) % 2 == 0:    return Truex, y = int(input()), int(input())numbers = []if x <= y:while x != y:    for i in str(x):        if check(i):            numbers.append(x)    x += 1else:while y != x:    for i in str(y):        i = int(i)        if check(i):            numbers.append(y)    y += 1if y == x:    for i in str(x):        if check(i):            numbers.append(x)print(numbers)它打印 [2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 20, 21, 22, 22, 23, 24, 24, 25, 26, 26, 27, 28, 28, 29 ] 而不是 2,4,6,8,20,22,24,26,28
查看完整描述

1 回答

?
開滿天機

TA貢獻1786條經驗 獲得超13個贊

您正在根據每個數字的單個數字進行檢查和批準。在附加整個數字之前,您應該檢查所有這些。這就是您獲得22兩次的原因:第一次獲得2一次,第二次獲得一次。你得到10,因為即使1是奇數,0也是偶數,所以你將它附加到你的列表中。


將整個數字的檢查移到函數中,并且僅當所有數字都是偶數時才check返回。這會縮短您的代碼。另請注意,如果用戶以錯誤的順序輸入它們,您可以輕松交換。True xy


一旦發現一個數字是奇數,該函數check就會立即返回,您可以看到它只有在循環結束并且所有數字都是偶數時才能返回。FalseiTrue


    def check(num):

        for i in str(num):

            if int(i) % 2 != 0:

                return False

        return True



    x, y = int(input()), int(input())

    if x > y:

        x,y = y,x


    numbers = []


    while x <= y:

        if check(x):

            numbers.append(x)

        x += 1

    print (numbers)

結果,3并20輸入(但20也3可以):


[4, 6, 8, 20]


查看完整回答
反對 回復 2022-07-12
  • 1 回答
  • 0 關注
  • 96 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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