3 回答

TA貢獻1772條經驗 獲得超6個贊
考慮一下:
a = 10
(a%3 == 0) and (a%5 == 0) # False
(a%3 and a%5) == 0 # True
第一次嘗試給出False錯誤,因為它需要同時滿足兩個條件;你需要or代替。如果仔細觀察,一些數字(例如15)被排除在外,與同時具有3和5作為因數的數字一致。
如果因為在第二次嘗試是正確的a是不整除或者3或5,則表達式計算得到False,并0 == False給出True。更慣用的寫法是:
not (a%3 and a%5)

TA貢獻1818條經驗 獲得超3個贊
檢查這也有效!100%
def result(N):
for num in range(N):
if num % 3 == 0 and num % 5 == 0:
print(str(num) + " ", end="")
else:
pass
if __name__ == "__main__":
N = 100
result(N)

TA貢獻1863條經驗 獲得超2個贊
在他所關注的層面上有一個更清晰的答案
a = 1
while a <= 100:
if a%3 == 0 or a%5 ==0:
a = a+1
else:
print(a)
a = a+1
添加回答
舉報