可迭代对象(Sum 和 for 循环)的问题



所以我正在尝试编写一个代码来找出一个数字是否可以被 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')

有人知道如何修复该错误吗?

替换每个:

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:
sum1 = int(num1)
if sum1 > 10:
while sum1 > 10:
sum_=sum1
sum1=0
for num in str(sum_):
sum1 += int(num)
if sum1 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: ')
sum1 = num1 = int(user_input)
if sum1 > 10:
while sum1 > 10:
sum_=sum1
sum1=0
for num in str(sum_):
sum1 += int(num)
if sum1 in (3, 6, 9):
print(num1, ': Your number is divisble by 3')
else:
print(num1, ': Your number is not divisible by 3')

最新更新