❤️ 博客主页:水滴技术
🌸 订阅专栏:Python 入门核心技术
🚀 支持水滴:点赞👍 + 收藏⭐ + 留言💬
文章目录
- 一、创建函数
- 二、调用函数
- 三、向函数传递参数
- 3.1、形参和实参
- 3.2、多参函数
- 3.3、参数的顺序
- 3.4、关键字实参
- 3.5、参数的默认值
- 3.6、不定长参数
- 四、有返回值的函数
- 系列文章
- 热门专栏
大家好,我是水滴~~
本篇主要讲术 Python 中的函数,主要内容有:函数的定义、创建函数、调用函数、向函数传递参数、参数返回值等。
简单来讲,函数(function)就是用来完成某个特定功能的代码块。使用函数,可以提高代码的模块化、复用性。在 Python 中有很多内置的函数,比如我们使用最多的
print()
函数。
一、创建函数
函数使用
def
关键字来定义,然后是函数名,后面紧跟着是一对括号()
和一个冒号:
,遇到冒号我们就知道,它的下面会是一个代码块,该代码块为函数体。当函数被调用后,会从函数体的第一行,执行到最后一行。
例如:下面例子中,创建了一个名为 say_hello
的函数,该函数会往屏幕上打印:“你好” “我是水滴”。
# 定义是个名为 say_hello 的函数
def say_hello():
print("你好")
print("我是水滴")
二、调用函数
调用函数是指支行函数里的代码。如果我们定义了一个函数,但是从来不调用它,这些代码是永远也不会运行的。调用函数时,输入函数名字,然后跟上一对括号
()
即可。
下面例子中,是调用刚定义的 say_hello
函数。
# 调用 say_hello 函数
say_hello()
输出结果:
你好
我是水滴
我们也可以重复的调用函数,那么函数中的代码也会执行相同的次数。
# 调用三次 say_hello 函数
say_hello()
say_hello()
say_hello()
输出结果:
你好
我是水滴
你好
我是水滴
你好
我是水滴
三、向函数传递参数
函数名后面的括号
()
并不是没有用处,它可以用来传递参数。
下面例子中,函数 say_hello
会接收一个 name
参数。
# 定义是个名为 say_hello 的函数,并传入 name 参数
def say_hello(name):
print("你好," + name)
print("我是水滴")
那么,调用函数时,需要传入参数。
say_hello("小明")
输出结果:
你好,小明
我是水滴
我们向函数传入什么值,函数中就会使用什么值。这样,我们就可以根据需要,传入不同的参数了。
say_hello("小明")
say_hello("小美")
say_hello("小帅")
输出结果:
你好,小明
我是水滴
你好,小美
我是水滴
你好,小帅
我是水滴
3.1、形参和实参
在函数传参时有两个术语需要我们了解一下,即行参和实参。
形参是在声明函数时定义的,用于接收参数,并且该参数在整个函数体内可以使用。上例中的
name
为行参。
实参是在调用函数时传递的参数,可以是常量、变量、表达式、对象等。上列中的"小明"
、"小美"
、"小帅"
都是实参。
3.2、多参函数
上面的例子中,我们只传了一个参数。实际上函数是可以定义多个参数的。
下面函数中定义了两个形参:
# 定义是个名为 say_hello 的函数,并定义两个参数
def say_hello(name, mood):
print("你好," + name)
print("我是水滴,见到你很" + mood)
函数调用时传递两个实参。
say_hello("小明", "开心")
输出结果:
你好,小明
我是水滴,见到你很开心
虽然函数可以定义很多个,但为了规范起见,当参数超过5、6个后,可以考虑使用列表或对象。
3.3、参数的顺序
在函数调用时,一定要注意实参的顺序,如果与形参的顺序不一致,将会有出乎意料的问题。这种要求实参的顺序与形参的顺序相同的参数传递,叫做位置实参。
下面是一个顺序错误的示例:
say_hello("伤心", "小明")
输出结果:
你好,伤心
我是水滴,见到你很小明
3.4、关键字实参
关键字实参是传递参数时可以指定参数名称,这样可以将参数名称和值关联起来。在传递参数时不用考虑参数的顺序,并且清楚的指出了各个参数的用途。
下面是关键字实参调用的例子:
say_hello(mood="伤心", name="小明")
输出结果:
你好,小明
我是水滴,见到你很伤心
3.5、参数的默认值
在编写函数时,可以给每个形参指定默认值。这样在调用函数时,如果未指定实参,那么将使用形参的默认值。
下面例子中,为 mood
形参指定了默认值:
# 定义是个名为 say_hello 的函数,并定义两个参数
def say_hello(name, mood="开心"):
print("你好," + name)
print("我是水滴,见到你很" + mood)
函数调用:
say_hello("小明")
输出结果:
你好,小明
我是水滴,见到你很开心
3.6、不定长参数
函数可以传递不定长的参数,在参数前加星号
*
即可。
定义一个含有不定长参数的函数:
def say_hello(*names):
for name in names:
print("你好," + name + ",我是水滴")
调用函数,传递多个参数:
say_hello("小明", "小美", "小帅")
输出结果:
你好,小明,我是水滴
你好,小美,我是水滴
你好,小帅,我是水滴
四、有返回值的函数
函数不仅可以完成某个特定功能,还可以返回一个或一组值,函数返回的值称为返回值。在函数体中,使用
return
语句表示返回值。
带返回值的函数:
# 定义是个名为 say_hello 的函数,并定义两个参数
def say_hello(name, mood="开心"):
print("你好," + name)
print("我是水滴,见到你很" + mood)
return "水滴"
调用函数,并输出返回结果:
result = say_hello("小明")
print("返回值:" + result)
输出结果:
你好,小明
我是水滴,见到你很开心
返回值:水滴
系列文章
🔥 Python 基础(一):初识 Python
🔥 Python 基础(二):搭建 Python 开发环境
🔥 Python 基础(三):Python 集成开发工具 IDLE
🔥 Python 基础(四):基础语法
🔥 Python 基础(五):变量与常量
🔥 Python 基础(六):基本数据类型
🔥 Python 基础(七):常用运算符
🔥 Python 基础(八):流程控制语句
🔥 Python 基础(九):列表
🔥 Python 基础(十):元组
🔥 Python 基础(十一):集合
🔥 Python 基础(十二):字典
热门专栏
👍 《Python入门核心技术》
👍 《IDEA 教程:从入门到精通》
👍 《Java 教程:从入门到精通》
👍 《MySQL 教程:从入门到精通》
👍 《大数据核心技术从入门到精通》