在python的编程世界里,函数是让代码变得模块化、可复用、易维护的核心工具。今天我就结合自己的学习笔记,带你从基础到进阶,彻底搞懂python函数的方方面面。
一、为什么函数是python程序员的“必修课”?
想象一下,如果没有函数,你每次计算圆的面积都要写一遍 3.14 * r * r,每次处理字符串都要重复写相同的判断逻辑。这样不仅代码冗余,还容易出错。
函数的本质,就是把一段实现特定功能的代码“打包”起来,起个名字,之后在需要的地方直接调用。它就像一个生产流水线:你输入原料(参数),它经过加工(函数体),最后输出产品(返回值)。
学会使用函数,你写的代码会变得更简洁,逻辑也更清晰。
二、函数的创建
1. 函数的定义
def 函数名(参数):
代码块
return 返回值说明:
• def是定义函数的专属保留字,不能省略或写错。
• 函数名的命名规则和变量一致(只能由字母、数字、下划线组成,不能以数字开头,区分大小写)。
• 参数可根据函数功能选择是否设置,即使定义了参数,调用时也可结合需求灵活传参(如默认参数、可变参数等)。
• 函数的代码块必须缩进,这是python语法的强制要求。
• return用于返回结果,无返回需求时可省略,此时函数默认返回none。
def fun1():
for i in range(10):
print(i, end=" ")注意:python中函数仅定义不会执行内部代码,只有通过函数名()的方式调用函数,函数体的代码才会被执行。
2. 函数的调用
定义函数后,就可以通过 函数名(参数) 的方式调用它:
def fun1():
for i in range(10):
print(i, end=" ")
fun1()3.函数的复用
定义函数的最大优点在于如果需要经常使用某些功能,将这些功能创建成函数,在使用时只需要调用该函数即可,不需要重复编写复杂的代码块。
def fun3(n):
b = 1
for i in range(1, n+1):
b = int(i)* b
return b
b = fun3(7) + fun3(8) + fun3(9)
print(b)4.return返回值
• 返回数据到调用函数。
def fun2():
ls = ['张三', '李四']
a = len(ls)
return a
print(fun2())• 定义函数中不带return语句。当定义函数的代码块全部执行完毕后,调用函数的代码将默认按收到一个空值,即none。
def fun1():
for i in range(10):
print(i, end=' ') # 循环打印0-9,end=' '让输出不换行
# 函数未写return语句,默认返回none
print(fun1()) # 先执行fun1()的打印,再打印fun1()的返回值none• 定义函数中带return语句且返回多个值。
def fun2():
ls = ['张三', '李四']
a = len(ls)
b = ls.pop()
return a, b
print(fun2())• 定义函数中带return语句位于末尾行且返回多个值。
def fun2():
ls = ['张三', '李四']
a = len(ls)
b = ls.pop()
if a == 2:
return b
else:
return a, b
print('hello world')
print(fun2())三、参数的艺术:灵活传递数据
1. 形参与实参
• 形参(形式参数):定义函数时括号里的变量,比如上面的 radius 和 pi,它只是一个占位符。
• 实参(实际参数):调用函数时填入的具体值,比如 calculate_circle_area(5) 里的 5,它会被赋值给对应的形参。
def fun3(n):
b = 1
for i in range(1, n+1):
b = int(i) * b
return b
a = input("请输入一个数字:")
print(a, '的阶乘:', fun3(int(a)))
2. 默认参数
定义函数中的某些参数会填入相同的数据,这时可以给形参设置默认值,提前给参数设置一个数据。
def circle_calc(r, pi=3.14):
return pi * r * r
a=circle_s(3)
b=circle_s(r=5.,pi=3.14159)
print(a,b)3. 可变参数
当不确定要接收多少个参数时,可以用可变参数:
• 可变参数的形参开头使用*开头。
• 可变参数必须位于必填参数的右边以保证必填参数先接收到数据,再将剩余的数据传递给可变参数。
• 可变参数以元组的形式接收数据。
def fun3(a, *b): # *b表示可变参数,接收任意数量的位置参数,打包为元组
print(b)
c = 0
for i in b:
c += a * i
return c
print(fun3(3, 1, 2, 3)) # 调用时a=3,*b接收1、2、3,打包为元组(1,2,3)4. 关键字参数
• 关键字参数的形参使用**开头。
• 关键字可变参数必须位于必选参数的右边,确保必选参数先接收数据。
• 关键字参数以字典的形式接收数据。
• 传递给关键字参数的数据包含键和值,其中键和值使用等号连接。
def fun4(a,**b):
print(a, '课程考试成绩:')
print(b)
fun4('python', zhangsan=90, list=95)写在最后
函数不是python特有的概念,但它在python中的灵活应用,让代码的组织和复用变得格外高效。从简单的函数定义,到参数的灵活传递,再到 return 的巧妙运用,每一个知识点都是构建复杂程序的基础。
到此这篇关于吃透python函数:从基础语法到实战技巧的文章就介绍到这了,更多相关python函数语法内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论