给定输入10,打印(sum)产生什么输出?

时间:2018-06-05 11:48:17

标签: python python-3.x

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? 我不完全理解剩余的操作吗?

2 个答案:

答案 0 :(得分:1)

语句n % m给出余数,如果是0,则n可以被m整除。

此外,如果if x Truex会返回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