可迭代问题(求和和循环)[重复项]

问题描述 投票:0回答:1

因此,我尝试编写代码以找出数字是否可以被3整除。步骤如下,输入数字,将所有数字相加,如果数字大于10,则将数字加在一起直到10以下,然后看是否剩余的数字是3、6或9,然后将其除以3,然后将其打印出来。到目前为止,这是我的代码:

user_input = int(input('Enter number: '))
sum = 0
for num in user_input:
    sum += int(num)

    if sum > 10:
        while sum > 10:
            sum = 0
            for num in user_input:
                sum += int(num)

            if sum == 3 or 6 or 9:
                print('Your number is divisble by 3')

            else:
                print('Your number is not divisible by 3')

    else:

        if sum == 3 or 6 or 9:
            print('Your number is divisble by 3')

        else:
            print('Your number is not divisible by 3')

任何人都知道如何解决该错误吗?

python
1个回答
0
投票

替换每个:

if sum == 3 or 6 or 9:

if (sum in ( 3, 6, 9)):

也-不要覆盖sum-它是python中的默认功能,您可以将变量命名为_sum,例如。

编辑

IIUC,这就是您想要做的(您最初插入多个以空格分隔的数字):

user_input = input('Enter numbers: ').split(" ")

for num1 in user_input:
    sum = int(num1)
    if sum > 10:
        while sum > 10:
            sum_=sum
            sum=0
            for num in str(sum_):
                sum += int(num)
        if sum in (3, 6, 9):
            print(num1, ': Your number is divisble by 3')
        else:
            print(num1, ': Your number is not divisible by 3')

仅获取并处理单个号码:

user_input = input('Enter number: ')

sum = num1 = int(user_input)

if sum > 10:
    while sum > 10:
        sum_=sum
        sum=0
        for num in str(sum_):
            sum += int(num)
    if sum in (3, 6, 9):
        print(num1, ': Your number is divisble by 3')
    else:
        print(num1, ': Your number is not divisible by 3')
© www.soinside.com 2019 - 2024. All rights reserved.