Python如何实现无需重复计算的条件运算,满足相加后不超过10?
解决方案
你的需求完全可以实现,且有多种简洁的实现方式。
首先注意:你现有代码的逻辑和你描述的「给x加5且保证相加后结果不大于10」的需求并不完全匹配:现有代码如果x+5>=10时,x不会做任何变更,而你需要的是相加后最高为10,对应最优实现方案如下:
推荐方案(无Python版本限制、可读性最高)
使用Python内置的min()函数,仅需一次计算即可完成需求:
x = min(x + 5, 10)
逻辑说明:取x+5和10两个值中的较小者赋值给x。如果x+5不超过10就直接赋值,超过的话就取上限10,完全符合你的要求,且全程只计算一次x+5,没有重复运算。
兼容三元表达式的方案(Python 3.8及以上版本可用)
如果你需要保留三元表达式的写法,可以借助Python 3.8新增的海象运算符存储中间计算结果,避免重复计算:
# 匹配你原代码逻辑(x+5>=10时x保持原值不变)的写法 x += 5 if (temp := x + 5) < 10 else 0 # 匹配你「加5后结果不超过10」需求的写法 x += 5 if (temp := x + 5) < 10 else (10 - x)
内容的提问来源于stack exchange,提问作者Vigneswar A
相关产品推荐
相关产品推荐

