Python 100天,从新手到大师——函数与模块:代码复用的艺术与工程实践(day14)

张开发
2026/5/21 23:17:58 15 分钟阅读
Python 100天,从新手到大师——函数与模块:代码复用的艺术与工程实践(day14)
函数与模块:代码复用的艺术与工程实践学习概述在编程的世界中,重复代码被称为"代码的坏味道"。本节课,我们将学习如何通过函数和模块来解决重复代码的问题,实现代码的复用和模块化。函数让我们能将一段功能独立的代码封装起来,通过简单的调用来重复使用;而模块则帮助我们管理函数和变量,避免命名冲突,构建清晰的项目结构。掌握函数和模块的使用,是编写高质量、可维护Python代码的关键一步。函数与模块:构建可复用代码的基石一、 为什么需要函数?让我们从一个实际问题开始:计算组合数CmnC_m^nCmn​,公式为:Cmn=m!n!(m−n)!C_m^n = \frac{m!}{n!(m-n)!}Cmn​=n!(m−n)!m!​最直接的实现方式可能是这样的:m=int(input('m = '))n=int(input('n = '))# 计算m的阶乘fm=1fornuminrange(1,m+1):fm*=num# 计算n的阶乘fn=1fornuminrange(1,n+1):fn*=num# 计算(m-n)的阶乘fk=1fornuminrange(1,m-n+1):fk*=num# 计算组合数print(fm//fn//fk)这段代码虽然能完成任务,但存在一个严重问题:重复代码。我们写了三遍几乎完全相同的求阶乘代码!编程大师Martin Fowler曾说:“代码有很多种坏味道,重复是最坏的一种!”函数正是为了解决这个问题而生。通过函数,我们可以将重复的代码封装起来,实现"一次定义,多次使用"。二、 函数的定义与使用1. 什么是函数?在数学中,函数是输入与输出之间的映射关系:y=f(x)y = f(x)y=f(x)。在Python中,函数的概念类似:函数名:相当于数学中的fff参数:相当于数学中的xxx(自变量)返回值:相当于数学中的yyy(因变量)2. 定义函数的基本语法def函数名(参数1,参数2,...):"""函数的文档字符串(可选)"""# 函数体:要执行的代码return返回值让我们用函数重构上面的求阶乘代码:deffactorial(num):"""计算num的阶乘"""result=1forninrange(2,num+1):result*=nreturnresult m=int(input('m = '))n=int(input('n = '))print(factorial(m)//factorial(n)//factorial(m-n))代码解析:def:定义函数的关键字factorial:函数名num:参数(接收外部传入的值)return:返回计算结果3. 函数的调用定义函数后,我们可以通过函数名加括号的方式来调用它:# 调用函数,传入参数5result=factorial(5)print(f"5的阶乘是:{result}")# 输出:120# 直接使用函数返回值print(f"3的阶乘是:{factorial(3)}")# 输出:6三、 函数的参数详解Python函数支持多种参数传递方式,非常灵活。1. 位置参数最常见的参数类型,按照参数位置依次传递:defgreet(name,greeting):"""根据名字和问候语生成问候"""returnf"{greeting},{name}!"print(greet("Alice","Hello"))# 输出:Hello, Alice!print(greet("Hi","Bob"))

更多文章