如何正确调用这段Python代码中的自定义绝对值计算函数?
问题根源
你写的代码存在3个核心问题,导致只能依赖最后一行才能触发运行,且不符合「计算并返回数字绝对值」的任务要求:
- 函数定义时声明了接收参数
a,但函数内部又用input()语句覆盖了参数值,导致主动传参的逻辑完全失效 - 函数没有设置
return返回值,默认返回None,和「返回计算结果」的要求不符 - 只写函数定义的话Python不会主动执行任何逻辑,必须有单独的函数调用语句才能触发运行,你说的「最后一行」本质就是调用语句,只是写法不符合需求
解决方案
根据你的使用场景可以选任意一种修改方案:
方案1:保留「传入数字返回绝对值」的逻辑,符合课程任务要求
删掉函数内部的input语句,调用时直接传参即可,不需要把调用嵌套在print里:
def absolute(a): if a >= 0: res = a else: res = -a # 打印逻辑可以保留也可以删掉,不影响返回结果 print('The absolute value of', a, 'is:', res) return res # 需要调用时直接写函数+传入参数即可,不用套在print里 absolute(1) absolute(-2.7)
方案2:保留输入交互逻辑,运行函数自动提示用户输入数字
不需要给函数设置参数,调用时直接写函数名+括号即可触发:
def absolute(): a = float(input('Enter a positive or negative number: ')) if a >= 0: res = a else: res = -a print('The absolute value of', a, 'is:', res) return res # 需要调用时直接执行下面这行即可 absolute()
内容的提问来源于stack exchange,提问作者Curry Packet
相关产品推荐
相关产品推荐

