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

Python新手求教:如何筛选大于0的变量进行求和?

简洁实现大于0的变量求和

方案1:列表+生成器表达式一键求和

把所有变量存入列表,配合sum()函数和过滤条件,一行代码就能完成需求:

num1 = 5
num2 = 5
num3 = 0
num4 = -5
num5 = 5

total = sum(num for num in [num1, num2, num3, num4, num5] if num > 0)
print(total)  # 输出15

逻辑说明:

  • 把分散的变量整合到列表里,避免逐个判断的冗余操作
  • 生成器表达式num for num in ... if num > 0自动筛选出所有大于0的数值
  • sum()函数直接对筛选后的数值求和

方案2:先筛选再求和(可读性更强)

如果觉得生成器表达式有点绕,可以拆分步骤,先筛选出正数列表再求和:

nums = [num1, num2, num3, num4, num5]
positive_nums = [num for num in nums if num > 0]
total = sum(positive_nums)
print(total)

原代码的问题

你之前的写法需要逐个判断变量,变量越多代码越臃肿,还容易出现漏加、错加的情况。用列表整合变量的方式,不管后续新增多少变量,只需要把变量加入列表即可,扩展性和维护性都更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 03:55:27