Python数学运算程序问题:加减乘除仅加法正常,其余结果异常
问题分析与修正方案
核心错误点
- 乘法初始值错误:你把
multi初始化为0,而乘法的单位元是1(任何数乘1都等于自身)。初始值为0的话,第一次循环0 * 3 = 0,第二次0 * 2 = 0,结果永远是0。 - 除法初始值与逻辑错误:
div初始化为0,0除以任何数还是0,而且除法是「第一个数 ÷ 第二个数」,不是累积除法。你当前的逻辑是0 ÷ 3 ÷ 2,结果自然是0.0。 - 减法初始值与逻辑错误:
sub初始化为0,你的逻辑是0 - 3 - 2 = -5,但实际需要的是「第一个数 - 第二个数」,也就是3 - 2 = 1,所以不能用累积减法。
修正后的代码
sum_total = 0 multi = 1 div = None sub = None for i in range(1, 3): num = int(input(f'{i}º dígito: ')) # 加法:累积求和,逻辑正确 sum_total += num # 乘法:累积求积,初始值改为1 multi *= num # 除法与减法:区分第一个数和第二个数 if i == 1: # 第一个数直接赋值给div和sub div = num sub = num else: # 第二个数进行除法和减法运算 div /= num sub -= num print(f'Soma: {sum_total}') print(f'Multi: {multi}') print(f'Div: {div}') print(f'Sub: {sub}')
测试结果(输入3和2)
- Soma: 5(正确)
- Multi: 6(正确)
- Div: 1.5(正确)
- Sub: 1(正确)
内容的提问来源于stack exchange,提问作者DR8
相关产品推荐
相关产品推荐

