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

Python代码为何无法返回预期结果498.75?

问题定位

你代码跑不出预期结果的核心原因是漏加小括号触发了Python默认运算符优先级规则,运算顺序和你设计的薪资计算逻辑不一致。
Python中乘除类运算符(*、/、//、%)的计算优先级天然高于加减类运算符(+、-),同级运算遵循从左到右的执行顺序;如果你需要某段加减逻辑优先于乘除执行,必须用英文半角小括号()包裹对应代码段。
从你附上的代码截图可识别到你当前的计算逻辑写法为:

hours = 45
hourly_rate = 10.5
total_pay = 40 * hourly_rate + hours - 40 * hourly_rate * 1.5

按照Python默认优先级执行时,实际计算流程是:

  1. 优先计算所有乘法项:40 * 10.5 = 420,40 * 10.5 * 1.5 = 630
  2. 再从左到右执行加减运算:420 + 45 - 630 = -165,和你预期的498.75偏差极大。

修正代码

你需要把「超出40小时的加班时长」这段减法逻辑用小括号包裹,强制这部分优先计算,修正后可直接得到正确结果:

hours = 45
hourly_rate = 10.5
total_pay = 40 * hourly_rate + (hours - 40) * hourly_rate * 1.5
print(total_pay)

运行上述代码会直接输出498.75,完全匹配预期。

入门排查小贴士

后续写数值计算类代码遇到结果不符的情况,可以优先排查两个高频新手问题:

  • 优先计算的逻辑段是否漏加英文小括号,导致运算顺序错乱
  • 代码中是否混入中文标点(中文括号、中文等号、中文运算符),这类问题通常会直接抛出语法错误,你本次没有触发报错说明标点格式都是正确的,仅为运算顺序问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 14:51:19