编写Python程序:输入整数n,分别计算其奇偶数字之和的问题求助
计算整数中偶数数字与奇数数字的和
原代码的问题
你的代码核心逻辑错误在于:
- 遍历的是数位的位置序号(从0到数字的长度),而非输入整数的每一位数字
- 累加的是位置序号的奇偶和,完全没有处理数字本身的奇偶性
正确实现方法
方法1:通过字符串遍历每一位数字
这种方法直观易懂,适合快速实现:
n = input().strip() sum_e = 0 sum_o = 0 for digit_char in n: digit = int(digit_char) if digit % 2 == 0: sum_e += digit else: sum_o += digit print(sum_e, sum_o)
方法2:通过数学运算逐位提取数字(不转字符串)
如果不想用字符串处理,可以用取模和整除操作逐位取出数字,同时兼容负数和0的情况:
n = int(input().strip()) sum_e = 0 sum_o = 0 num = abs(n) while num > 0: digit = num % 10 if digit % 2 == 0: sum_e += digit else: sum_o += digit num = num // 10 # 单独处理输入为0的情况 if n == 0: sum_e = 0 print(sum_e, sum_o)
代码说明
- 方法1将输入转为字符串后,直接遍历每个字符并转为数字,判断奇偶后累加到对应总和中
- 方法2通过
num % 10提取最后一位数字,num // 10移除最后一位,循环处理所有数位;用abs(n)处理负数情况,单独判断输入为0的场景
内容的提问来源于stack exchange,提问作者Naman Moolri
相关产品推荐
相关产品推荐

