如何编写以运算符为输入的Python计算器函数来消除重复代码?
解决方案
可以用字典映射操作符与运算逻辑的方式实现你想要的单一行打印函数,同时用Python的f-string简化字符串拼接,比你原来的字符串相加更简洁清晰。
实现目标函数
def result(num1, num2, operator): ops = {"+": lambda a,b: a+b, "-": lambda a,b: a-b, "*": lambda a,b: a*b, "/": lambda a,b: a/b} print(f"{num1} {operator} {num2} = {ops[operator](num1, num2)}")
优化你的主代码
另外注意你原来的代码有个小问题:num2 = float(input(...))放在了while循环内部,每次输入错误操作符时都会重复让用户输入第二个数,建议调整位置:
num1 = float(input("Enter first number: ")) num2 = float(input("Enter second number: ")) op = None while op not in ("-", "+", "*", "/"): op = input("Enter operator (-, +, *, /): ") # 调用函数打印结果 result(num1, num2, op)
补充说明
- 字典
ops里的lambda表达式对应每个操作符的运算逻辑,通过operator键就能取出对应的计算方法 - f-string可以直接在字符串里嵌入变量和表达式,避免了大量的
str()转换和字符串拼接,代码更简洁
内容的提问来源于stack exchange,提问作者asdfghjkl
相关产品推荐
相关产品推荐

