Python-函数补充
函数
- 函数:Pyhton允许我们将常用的代码以固定的格式封装(包装)成一个独立的模块,只要知道这个模块的名字就可以重复使用它,这个模块叫做函数(Function)。
- 函数得的本质就是一段有特定功能、可以重复使用的代码。
函数的定义
- 定义函数,也就是创建一个函数,可以理解为创建一个具有默写用途的工具。
- 定义函数需要用def关键字实现,语法格式为:
def 函数名(参数列表)://实现特定功能的多行代码[[return [返回值]]]
-
函数名:一个符合Python语法的标识符。函数名最好能够体现出该函数的功能
-
[return [返回值]]:整体作为函数的可选参参数,用于设置该函数的返回值。即一个函数可以用返回值,也可以没有返回值,是否需要根据实际情况而定。
-
❗注意:在创建函数时,即使函数不需要参数,也必须保留一对空的“()”,否则 Python 解释器将提示“invaild syntax”错误。另外,如果想定义一个没有任何功能的空函数,可以使用 pass 语句作为占位符。
-
- 例如:定义一个打印问候语的简单函数,函数名为greet_user()
# 关键字def 定义函数 # 使用关键字def定义函数,并指出函数名 def greet_user():"""显示简单的问候语"""print("Hello!") #函数体 greet_user()
向函数传递信息
-
在函数定义的括号内添加参数,可以让函数接收给参数指定的任何值。
-
例如:
def greet_user(username):"""显示简单的问候语"""print("Hello, " + username.title() + "!") greet_user('jesse') #调用函数greet_user() # 可以根据需要调用函数greet_user()任意次,调用时无论传入什么名字,都会生成相应的输出。
实参和形参
函数参数的作用:传递数据给函数,令其对接收的数据做具体的操作处理。
在使用函数时,经常用到形式参数(简称“形参”)和实际参数(简称“实参”),二者都叫参数。
形参
-
在定义函数时,函数名后面括号中的参数就是形式参数
-
多个形式参数用逗号隔开
-
定义时不需要声明类型,也不需要指定函数返回类型
实参
- 调用函数时传递给函数的信息
- 在调用函数时,函数名后面括号中的参数称为实际参数,也就是函数的调用者给函数的参数
- 调用时的实际参数必须与形参列表一一对应
注意:实参和形参的区别,就如同剧本选主角,剧本中的角色相当于形参,而演角色的演员相当于实参。
练习
- 消息:编写一个名为display_message()的函数,它打印一个句子,指出你在本章学的是什么。调用这个函数,确认显示的消息正确无误。
def display_message():'''打印本章学习内容'''print("形参和实参") display_message()
- 喜欢的图书:编写一个名为
favorite_book()
的函数,其中包含一个名为title
的形参。这个函数打印一条消息,如One of my favorite books is Alice in Wonderland
。调用这个函数,并将一本图书的名称作为实参传递给它。def favorite_book(title):print("One of my favorite books is " + title + ".") favorite_book('Alice in Wonderland')
参数的传递
-
Python中,根据实际参数的类型不同,函数参数的传递方式可分为2种,分别为值传递和引用传递 。
-
值传递:适用于实参类型为不可变类型(字符串,数字、元组)
-
引用(地址)传递:适用于实参类型为可变类型(列表,字典)
-
值传递和引用传递的区别:函数参数进行值传递后,若形参的值发生改变,不会影响实参的值;而函数参数继续引用传递后,改变形参的值,实参的值也会一同改变。
def demo(obj) :obj += objprint("形参值为:",obj) print("-------值传递-----") a = "C语言中文网" print("a的值为:",a) demo(a) print("实参值为:",a) print("-----引用传递-----") a = [1,2,3] print("a的值为:",a) demo(a) print("实参值为:",a)
-
传递实参
位置实参
- 含义:调用函数时,Python必须将函数调用中的每个实参都关联到函数定义中的一个形参,基于实参的顺序关联的方式称