Python3如何实现无参调用自定义pi函数时默认返回两位小数的圆周率
实现方案
直接给函数参数设置默认值即可,同时调整原有代码的逻辑顺序,避免未判断参数有效性就执行运算触发报错,修改后的完整代码如下:
import math def pi(n=None): # 先判断参数状态,再执行运算 if n is None or n <= 1: return round(math.pi, 2) elif n > 15: print("Too many decimal places.") return math.pi else: return round(math.pi, n)
修改说明
- 给参数
n设置默认值None,用户不传参数调用pi()时,参数会自动取默认值None,不会抛出参数缺失的错误 - 调整了逻辑顺序:先判断参数有效性再执行
round运算,避免n为None时直接调用round触发类型错误 - 移除了原代码中不必要的递归调用,直接返回对应精度的计算结果,避免递归调用带来的额外性能开销
运行效果测试
>>> pi() 3.14 >>> pi(4) 3.1416 >>> pi(20) Too many decimal places. 3.141592653589793
内容的提问来源于stack exchange,提问作者throwaway123
相关产品推荐
相关产品推荐

