Python中使用字符串类型+/-参数实现两个整数加减运算的方法
Python将字符串格式的+/-转换为实际运算的实现方案
方案1:条件分支判断(入门作业推荐)
这是最容易理解的实现方式,不需要引入额外模块,完全符合基础作业的要求:
def calc(num1: int, op_str: str, num2: int) -> int: if op_str == "+": return num1 + num2 elif op_str == "-": return num1 - num2 else: raise ValueError("当前仅支持+、-两种运算符") # 调用示例 print(calc(5, "+", 3)) # 输出 8 print(calc(9, "-", 4)) # 输出 5
方案2:字典映射+operator模块(可扩展场景推荐)
如果后续需要新增乘、除等其他运算符,这种方式的可维护性更高,不需要堆叠大量条件判断:
import operator # 建立运算符字符串与运算函数的映射关系 op_mapping = { "+": operator.add, "-": operator.sub } def calc(num1: int, op_str: str, num2: int) -> int: if op_str not in op_mapping: raise ValueError(f"不支持的运算符: {op_str}") return op_mapping[op_str](num1, num2) # 调用示例 print(calc(7, "+", 2)) # 输出 9 print(calc(10, "-", 6)) # 输出 4
注意事项
不推荐使用eval()函数实现该需求,例如eval(f"{num1}{op_str}{num2}")的写法虽然代码量少,但存在注入风险,若传入的运算符参数包含恶意代码会导致安全问题。
内容的提问来源于stack exchange,提问作者Ben Petsopoulos
相关产品推荐
相关产品推荐

