You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

代码逻辑异常:奇数未按预期乘3却输出27的问题求助

奇偶数值计算逻辑错误排查

需要实现的逻辑:输入m个数字,对每个数字做如下处理:

  • 若为偶数,输出该数乘2的结果
  • 若为奇数,输出该数乘3的结果

但运行以下代码后,奇数3的输出为27,不符合预期。

原代码

m = int(input())
for i in range(m):
    n = int(input())
    n*=2 if n%2==0 else n*3
    print(n)

输入示例

3
1
2
3

实际输出

3
4
27  # 不符合预期,预期应为9

问题原因

核心错误在赋值语句n*=2 if n%2==0 else n*3的逻辑:

  • 偶数场景:n *= 2 等价于 n = n * 2,这是正确的
  • 奇数场景:n *= n*3 等价于 n = n * (n*3),也就是把原数先乘3再乘自身,所以n=3时会计算为333=27,而非预期的3*3=9

修正方案

调整三元表达式,让奇数场景直接返回乘数3而非n*3,两种写法都可以:
写法一:

m = int(input())
for i in range(m):
    n = int(input())
    n = n * 2 if n%2==0 else n * 3
    print(n)

写法二(更简洁):

m = int(input())
for i in range(m):
    n = int(input())
    n *= 2 if n%2==0 else 3
    print(n)

修正后输入相同内容,输出为:

3
4
9

内容的提问来源于stack exchange,提问作者noobprogrammer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 14:05:23