ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Python函数基础:定义与调用全解析def关键字+参数返回值一文掌握

Python函数基础:定义与调用全解析def关键字+参数返回值一文掌握 于基础入门学习里, 函数是于容器类型之后的核心知识点, 还是实现代码复用、逻辑模块化的关键工具。好多新手写代码之际, 会出现“重复堆砌代码”“逻辑混乱难以维护”的状况, 然而函数能够完美化解这些痛点——把重复的代码块封装成函数, 有需要时直接调用, 既能够减少代码冗余, 又能使逻辑更清晰、更易于调试。本文是第一阶段1.5函数基础的开篇之作, 至关重要地讲解函数的定义与调用部分, 全方位拆解def关键字的用法 以及函数名的规范用法 还有参数传递的技巧用法, 伴随讲解返回值的用法, 配备助力新手容易上手的实操案例, 自始至终紧密贴合入门的节奏, 不存在复杂的概念, 助力你迅速掌握函数的核心基础内容, 从而迈出代码模块化的第一步。文章承接前文对于容器类型的钻研, 着重于“函数定义”以及“函数调用”这两项关键操作, 全部知识点皆以新手实际操作着手, 代码能够直接进行复制并运行, 同时标记出常见易错之处, 助力你避开入门时的陷阱, 为后续函数进阶、复杂逻辑封装的学习筑牢稳固根基。什么是函数于其中, 可以得知函数是那种被赋予了名称的、能够反复加以运用的代码块, 其目的在于去达成特定的功能性。简而言之, 函数仿佛就是一个“工具器具盒”, 先头之时把用以达成某一功能性的代码像是计算两个数字的总和、从列表里筛选出偶数这样的放置到这个“盒子”内部, 给它取订一个便于记忆的称呼, 等后面需要运用该功能性之际, 无需再度撰写一遍代码, 直接调用这个“盒子”就行。函数的核心价值有3点新手必须牢记1. 不重复编写有着相同逻辑的代码, 叫做代码复用, 先进行一次定义, 之后多次去调用它, 以此提升开发效率。2. 经过逻辑模块化处理, 把复杂的代码进行拆分, 使其成为多个相互独立的函数, 其中每个函数负责一项微小的功能, 如此一来, 代码的结构变得更加清晰, 从而便于进行调试以及维护。3. 对函数而言, 赋予其一个契合功能的名称, 如此一来, 当他人去阅读代码之际, 即便不查看具体的实现部分, 仍能够清晰明白该函数的功用所在。来举个例子, 这个例子要让新手容易理解: 要是我们存在多次去计算两个数之和的情况, 那样并非每次都要去写“a b”, 而能够去定义一个“求和函数”, 每一次调用这个函数, 并且传入两个数字, 如此便能够直接获得结果, 这便是函数的核心用法。核心操作1函数的定义def关键字详解在其中, 规定定义函数时一定要运用def关键字, 这属于函数定义的固定语法, 少了它不行。函数定义具备完整语法, 其结构分明, 对于新手而言, 只要记住“def函数名(参数): 缩进代码块”就行, 接下来会一步步剖析每个部分的用法以及规范要点。2.1 函数定义的基本语法函数定义的最小语法结构无参数、无返回值# 基本语法def 函数名(参数列表): # 函数体实现功能的代码 def 函数名(): # 函数体缩进编写4个空格新手必规范 实现功能的代码 ......关键说明新手必看, 是用于定义函数的关键字, 它必须放置在函数名前边, 之后添加空格。函数名, 是给函数所起的名字, 它遵循特定规范, 下文会详细讲解, 其作用是用于后续调用函数。带圆状括弧的括号, 在函索称名号后侧附着, 给参量放置提供地方, 没有参数情况下, 括孤不能去掉。- 冒号:函数定义的结束标志后面的函数体必须缩进- 函数体: 是用来实现函数功能的代码, 其必须进行缩进, 推荐缩进4个空格, 要与def关键字对齐, 若缩进不一致则会报错。2.2 函数名规范新手必避坑函数的名称如同函数的“身份证”, 它这不光是要自己能够看得懂, 并且还要使得别人借助名字就能够知晓函数的功用, 与此同时还一定要遵循相应的命名规范, 不然的话就会出现报错的情况或者是对代码读写的清晰程度形成影响。核心规范下面是这样的跟变量的命名规范相类似, 可以一起来进行记忆:1. 要由字母, 也就是a到z以及A到Z, 还有数字, 即0到9, 与下划线, 也就是_ 来组成, 不可以含有空格, 还有特殊符号, 比如、#、$2. 不可用数字居于起始位置情况像是1add、2sum这般属于有误情形, 而add1、sum2这样则是正确的体现。3. 不能够运用内置关键字, 像是def、if、for、while、list等等, 不可以作为函数名。4. 分辨清楚大写与小写的不同情况, 像add以及Add即为两个不一样的函数, 建议全都采用小写形式。5. 应当采用“小写字母 加 下划线”这样的命名形式也就是蛇形命名法, 要与所具备的功能相契合就像这儿、那儿、还有那儿, 防止运用毫无意义的名称情形出现类似 f1、func、test 这样的。正确与错误示例对比# 正确示例符合规范贴合功能 def sum_num():# 求和函数 pass def filter_even():# 筛选偶数函数 pass def calculate_area():# 计算面积函数 pass # 错误示例不符合规范新手避坑 def 1sum():# 错误以数字开头 pass def sum-num():# 错误包含特殊符号“-” pass def def():# 错误使用内置关键字def pass def SumNum():# 不推荐驼峰命名Python中更推荐蛇形命名 pass2.3 函数定义实操示例无参数由入手最简单的“无参数函数”开始, 助力新手去熟悉函数定义的语法, 达成一个在代码方面可直接复制来运行的“打印欢迎语”的函数。# 定义一个无参数函数功能打印欢迎语 def print_welcome(): print(欢迎学习Python函数基础) print(今天我们学习函数的定义与调用~) # 注意此时只是定义了函数函数体内的代码不会执行 # 只有调用函数代码才会运行重点提醒: 函数被定义完成之后, 并不会自行去执行函数内部所包含的代码, 这情形如同我们已然制作好了“工具盒”, 只是尚未对其加以运用, 如此一来, 工具盒里面的工具便不会产生效用。唯有当调用函数之时, 函数内部的代码才会依照顺序依次得以执行。核心操作2函数的调用如何使用定义好的函数函数调用作为运用函数的关键操作, 其语法极为简单, 呈现为: 函数名(参数)。要是函数不存在参数, 则括号里面为空就行倘若存在参数, 那么必须传入相应的参数, 借此方可让函数得以正常执行。3.1 无参数函数的调用最基础组合上面所规的“出示欢迎话语”函数, 展现没有参数函数的运用, 程序: 首先规函数, 接着运用函数。# 第一步定义无参数函数 def print_welcome(): print(欢迎学习Python函数基础) print(今天我们学习函数的定义与调用~) # 第二步调用函数核心函数名括号 print_welcome() # 运行结果 # 欢迎学习Python函数基础 # 今天我们学习函数的定义与调用~点明一下: 当去运用函数之际, 必然得写上函数的名称以及括号, 就算其间没有参数信息, 那括号亦是不能给省略掉的像若是函数自身的话, ()这样的形式才算是将函数给调用起来。函数能够进行多次的调用操作, 每一回的调用都会促使函数体内部的代码执行一回。# 多次调用函数 def print_welcome(): print(欢迎学习Python函数基础) # 调用3次 print_welcome() print_welcome() print_welcome() # 运行结果打印3次 # 欢迎学习Python函数基础 # 欢迎学习Python函数基础 # 欢迎学习Python函数基础3.2 有参数函数的调用重点在实际的开发过程当中, 相对来讲更多会用有参数函数, 而非功能比较单一进而实际用途也比较局限并且又没有参数的函数。有参数函数能够通过传入不一样的参数, 使得函数返回不一样的结果, 从而达成更为灵活的功能。就像求和函数, 当传入不同的两个数时, 会得到不同的和这样的情况。先定义一个有参数的求和函数再演示调用方法# 定义有参数函数计算两个数的和 # 参数a和b相当于函数内部的变量用于接收外部传入的值 def sum_num(a, b): result a b print(f{a} {b} {result}) # 调用有参数函数传入两个参数位置对应 sum_num(10, 20) # 传入a10b20 sum_num(5, 8) # 传入a5b8 sum_num(100, 200)# 传入a100b200 # 运行结果 # 10 20 30 # 5 8 13 # 100 200 300关键说明当进行函数定义之际, 于括号之内的a以及b, 被称作“形式参数”, 此乃简称形参, 其就如同函数内部的变量那般, 是用来接纳外部传入的数据的。函数进行调用之际, 括号当中的10、20又或者5、8被称作“实际参数”简略称为实参, 那是切实传入函数的数据。进行调用之际, 实际参数的数量以及顺序, 必然得和形式参数保持一致, 不然的话就会出现报错情况就好比(10)这样会报错, 原因在于少传递了一个参数而(10, 20, 30)同样会报错, 乃是因为多传递了参数。3.3 函数调用的常见错误新手避坑# 错误1调用函数时忘记加括号无参数 def print_hello(): print(Hello Python) # print_hello # 错误只写函数名不调用无任何输出 print_hello() # 正确加括号调用函数 # 错误2实参数量与形参不一致 def sum_num(a, b): print(a b) # sum_num(10) # 错误少传1个参数报错 # sum_num(10, 20, 30) # 错误多传1个参数报错 sum_num(10, 20) # 正确实参数量与形参一致 # 错误3函数未定义就调用顺序错误 # print_welcome() # 错误先调用后定义报错 def print_welcome(): print(欢迎) print_welcome() # 正确先定义后调用核心知识点参数传递形参与实参的关联函数定义跟调用的核心关联所在是参数传递, 生手得去理解“形参”跟“实参”二者的关系, 还要明白参数传递的规则, 以防发生参数不匹配、数据传递有误的状况。4.1 形参与实参的核心区别对比维度形式参数形参实际参数实参定义位置函数定义时括号内函数调用时括号内作用接收外部传入的数据相当于函数内部的变量向函数内部传递数据是具体的值或变量生命周期仅在函数内部有效函数执行结束后形参自动销毁在函数调用时生效传递完成后不影响函数内部示例def (a, b): 中的a、b(10, 20) 中的10、204.2 参数传递的两种常见方式新手必掌握传递中参数, 主要存在两种方式, 一种是位置参数传递, 另一种是关键字参数传递, 于实际开发里, 能够进行灵活搭配去使用, 重点在于对参数传递 的保证。方式1位置参数传递最常用将实参按照“形参的顺序”进行传入, 实参的位置得和形参逐个对应, 这属于最基础更是最常用的传递方式。# 定义函数接收姓名、年龄打印个人信息 def print_info(name, age): print(f姓名{name}年龄{age}) # 位置参数传递实参顺序与形参一致name对应张三age对应25 print_info(张三, 25) # 错误示例顺序颠倒导致数据错误 print_info(25, 张三) # 输出姓名25年龄张三逻辑错误无语法错误方式2关键字参数传递更灵活以“形参名实参值”这种形式来传入参数, 不用去留意形参的顺序情况, 适用于参数数量较多的场景, 能够防止因顺序颠倒而致使错误的出现。# 定义函数接收姓名、年龄、性别 def print_info(name, age, gender): print(f姓名{name}年龄{age}性别{gender}) # 关键字参数传递无需关注顺序 print_info(name张三, age25, gender男) print_info(age23, name李四, gender女) # 顺序颠倒不影响结果 # 混合使用位置参数在前关键字参数在后推荐 print_info(王五, 24, gender男) # 错误示例关键字参数在前位置参数在后报错 # print_info(name赵六, 22, gender男)存在相当关键的告知, 其内容为, 假如位置参数与关键字参数进行混合运用的时节, 位置参数是一定要放置于关键字参数的前面之处的, 不然的话就将会出现报错的情况。核心知识点返回值用法关键字前些时候所定义的函数, 多数都是“打印结果”, 然而在实际进行开发的过程当中, 我们常常会需要函数去返回一个确切的值, 以供后续的代码加以采用举例来说, 像求和函数, 会返回求和之后所得的结果, 接着运用这个结果去开展其他的计算。在这个时候就务必得使用关键字, 它具备返还功效使得函数往内部的结果“返回”至调用者那里。5.1 关键字的基本用法语法: 于函数体内, 运用结果值, 当函数执行至彼时, 会即刻终止, 且把“结果值”返还给调用者。要是不存在, 函数默认返回None空值。# 定义有返回值的求和函数 def sum_num(a, b): result a b return result # 返回求和结果 # 调用函数接收返回值用变量接收 total sum_num(10, 20) print(求和结果, total) # 输出求和结果30 # 直接使用返回值无需变量接收 print(求和结果, sum_num(5, 8)) # 输出求和结果13 # 无return的函数默认返回None def print_hello(): print(Hello) result print_hello() print(函数返回值, result) # 输出函数返回值None5.2 关键字的核心特性新手必记1. 函数执行抵达那个时刻的时候? 就会马上停止运行, 而在那之后的代码部分, 是不会得以执行的哟这可是重点要避开的坑呢。def test(): print(执行第一步) return 结束 # 执行到return函数终止 print(执行第二步) # 这行代码不会执行 test() # 输出执行第一步2. 可有多个语句属于一个函数, 然而通常结合若否则句使用时, 仅有某一个将被执行, 是这样的情形。# 定义函数判断数字是正数、负数还是0 def judge_num(num): if num 0: return 正数 elif num 0: return 负数 else: return 0 print(judge_num(5)) # 输出正数 print(judge_num(-3)) # 输出负数 print(judge_num(0)) # 输出03. 存在能够返回多个值的情况这些值是以逗号作为分隔的, 在返回之后会自动被封装成为元组结构, 而调用者能够借助解包的方式来获取多个值。# 定义函数返回两个数的和与差 def sum_and_diff(a, b): sum_result a b diff_result a - b return sum_result, diff_result # 返回多个值 # 方式1用一个变量接收得到元组 result sum_and_diff(10, 3) print(result) # 输出(13, 7) # 方式2解包接收推荐更直观 sum_r, diff_r sum_and_diff(10, 3) print(和, sum_r) # 输出和13 print(差, diff_r) # 输出差75.3 新手常见错误用法避坑# 错误1return后面加空格导致语法错误 def sum_num(a, b): return a b # 错误return和结果之间不能有空格虽然有时能运行但不规范易报错 # 正确return a b # 错误2试图在函数外部使用函数内部的变量无return时 def sum_num(a, b): result a b # print(result) # 错误result是函数内部变量外部无法访问 # 正确用return返回result再在外部接收 def sum_num(a, b): result a b return result print(sum_num(10, 20)) # 正确 # 错误3return多个值时用错分隔符 def get_info(): name 张三 age 25 # return name; age # 错误用分号分隔只会返回第一个值 return name, age # 正确用逗号分隔六、实操案例函数定义与调用综合练习按照前面所讲的知识点, 给出3个案例, 这3个案例是新手容易上手的综合类型案例, 其涵盖了函数定义方面, 参数传递方面, 还有返回值用法方面等点内容, 代码是可以直接进行复制从而运行的那种, 能够帮助新手去巩固所学习到的内容, 让新手熟练掌握函数的基础用法。案例1定义函数计算一个数的平方有参数、有返回值# 需求定义一个函数接收一个数字返回这个数字的平方 def square(num): # 计算平方 return num ** 2 # 调用函数传入不同参数接收返回值 print(5的平方, square(5)) # 输出5的平方25 print(10的平方, square(10)) # 输出10的平方100 print(3.5的平方, square(3.5)) # 输出3.5的平方12.25案例2定义函数筛选列表中的偶数结合容器类型# 需求定义一个函数接收一个列表返回列表中的所有偶数 def filter_even(list_data): # 定义空列表存储偶数 even_list [] for num in list_data: if num % 2 0: even_list.append(num) return even_list # 调用函数传入列表接收返回值 nums [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] even_nums filter_even(nums) print(列表中的偶数, even_nums) # 输出列表中的偶数[2, 4, 6, 8, 10]案例3: 去定义函数, 达成个人信息依多参数、关键字传递这般流程来进行录入以及打印。# 需求定义函数接收姓名、年龄、性别、手机号返回格式化的个人信息字符串 def get_person_info(name, age, gender, phone): info f【个人信息】姓名{name}年龄{age}岁性别{gender}手机号{phone} return info # 调用函数混合使用位置参数和关键字参数 person1 get_person_info(张三, 25, gender男, phone13800138000) person2 get_person_info(李四, age23, gender女, phone13900139000) # 打印返回的个人信息 print(person1) print(person2) # 运行结果 # 【个人信息】姓名张三年龄25岁性别男手机号13800138000 # 【个人信息】姓名李四年龄23岁性别女手机号13900139000总结此篇文章是基础入门1.5函数基础里的关键内容, 对函数的定义与调用进行了全面讲解, 着重剖析def关键字的使用方法、函数名规范、参数传递窍门形参、实参、位置传递、关键字传递以及返回值的用法, 配备多个实际操作案例以及易错点提示, 助力新手疾速掌握函数的核心基础。核心要点总结新手必背1. 函数的定义要求, 得使用def关键字才行, 其语法是def 函数名(参数)这种形式, 接下来还要进行缩进从而形成函数体, 函数名需要按照蛇形命名法来取, 并且不能够使用关键字。2. 函数进行调用时, 其所遵循的语法是函数名加上括号以及括号内的参数, 要是不存在参数那么括号一定不可以是空的, 实际参数的数量、还有顺序必须与形式参数保持一致。3. 参数进行传递, 存在分位置传递这种情况, 它是按照顺序来传递的哟 , 还有关键字传递, 这是按照形参名称进行传递。当将它们混合使用时, 位置参数是要排在前面的。4. 返回的值是: 通过关键字把结果予以返回, 函数在所执行之处当即便终止, 能够返回多个值会自动封装成为元组那么存放, 要是没有默认返回的情况则返回None。编程基础涉及函数, 函数还是让代码得以复用以及模块化的关键所在, 新手被建议多多从事本文案例的实际操作, 着重练习“定义函数, 传递参数, 接收返回值”的完整流程, 熟悉参数传递用法, 避开常见容易出错的要点。下一篇我们会学习函数进阶知识点、默认参数、关键字参数、不定长参数, 从而进一步提升函数灵活性以及实用性。
返回列表