the_max = int(input('enter upper:'))
the_sum = 0
extra = 0
for number in range(1,the_max):
if number % 2 and not number % 3:
the_sum += number
else:
extra += 1
print(the_sum)
我认为通过总结2,4和8将是14 根据我的书,为什么答案是12,输入为10? 我不完全理解剩余的操作吗?
答案 0 :(得分:1)
语句n % m
给出余数,如果是0
,则n
可以被m
整除。
此外,如果if x
不 True
,x
会返回0
(通过)(实际上,如果它有任何“真实”值)
当if number % 2
奇数时,number
传递。
同样,if not number % 3
传递,number
数字 可被3
整除。
总之,只有奇数数字,可被3
整除,会传入当前代码并添加到变量:the_sum
。
使用10
,这是:
1 2 3 4 5 6 7 8 9
x x ✓ x x x x x ✓
= 12
为清楚起见,您当前的if-statement
相当于:
if number % 2 != 0 and number % 3 == 0
为了让它像您想象的那样工作,您需要检查剩余部分是否为0
。
将if语句修改为:
if number % 2 == 0 and not number % 3 == 0: #could also do number % 3 != 0
然后将偶数数字相加,不能被3
整除:
1 2 3 4 5 6 7 8 9
x ✓ x ✓ x x x ✓ x
= 14
答案 1 :(得分:0)
if number % 2 and not number % 3:
当number % 2
产生1而number % 3
产生0
你范围内的两个这样的数字是3和9,所以总和是12