如何将自定义max函数拆分为含main函数的两个函数?
解决方案
我们可以把代码拆分为输入处理和数值比较两个独立函数:
- 一个
main()函数负责获取用户输入、转换数据类型,并调用比较函数 - 一个自定义比较函数(命名为
my_max,避免和Python内置max重名)专注于判断两个数的大小
修改后的完整代码:
def my_max(x, y): if x > y: return x else: return y def main(): # 获取输入并转换为整数(原代码未转类型,会导致字符串比较错误) x = int(input("Enter integer value 1...")) y = int(input("Enter integer value 2...")) result = my_max(x, y) print(result) # 执行main函数 if __name__ == "__main__": main()
关键说明
函数拆分逻辑:
my_max只负责接收两个数值参数,完成大小比较并返回结果,职责单一main负责处理输入输出的交互逻辑,调用my_max时将转换后的整数x和y作为实参传递过去
修复原代码的隐藏问题:
原代码直接用input()的结果比较,本质是字符串字典序比较(比如输入"10"和"2"会得到"2",因为字符'1'的ASCII码小于'2'),所以必须用int()转换为整数再比较
内容的提问来源于stack exchange,提问作者darktown
相关产品推荐
相关产品推荐

