前言:
在Python中,函数是一种可重用的代码块,它用于执行特定的任务。函数可以接受输入(称为参数)并返回输出(称为返回值)。通过使用函数,我们可以将复杂的程序分解成更小、更易于管理的部分,从而提高代码的可读性、可维护性和复用性。下面将详细介绍Python中函数的基本概念、定义、调用、参数传递
一、函数
1、函数定义
在Python中,使用
def关键字来定义一个函数。def后面紧跟函数名和圆括号(),圆括号中可以包含函数的参数。函数的第一行通常是文档字符串(docstring),用于描述函数的功能和用法。函数体则包含执行特定任务的代码块,这些代码块通过缩进与def语句区分开来。
def 函数名(参数):
"""
函数功能描述
参数:
name -- 用户的名字
无返回值
"""
# 函数体
下面定义一个简单的函数,例如:
def display(param1, param2):
print('参数1:' + param1)
print('参数2:' + param2)
display("hello", "world")
2、参数传递
Python中的函数参数传递主要有两种方式:按值传递和按引用传递(在Python中更准确地说是按对象传递)。
- 按值传递:对于不可变类型(如整数、浮点数、字符串和元组),函数内部对参数的修改不会影响外部的值。
- 按对象传递:对于可变类型(如列表、字典和集合),函数内部对参数的修改会影响外部的值,因为传递的是对象的引用。
函数定义中可能包含多个形参,因此、函数调用也需要传递多个实参。向函数传递实参的方式有很多种,可以使用位置实参,这要求实参的顺序与形参的顺序相同。也可以使用关键字实参,其中每个实参都由变量名和值组成。
注意:python中一切都是对象,严格意义不能说值传递还是引用传递,应该说传不可变对象和传可变对象。
2.1、位置实参
函数调用时,必须将函数调用中每个实参都关联到函数定义中的一个形参。最简单的关联方式是基于实参的顺序,这种关联方式称为位置实参,例如:
def display(param1, param2):
print('参数1:' + param1)
print('参数2:' + param2)
display("hello", "world")
display("world", "hello")
上面两个函数调用,因为传参的顺序不同,有不同的输出结果
2.2、关键字实参
关键字实参是传递给函数的名称对,例如:
def display(param1, param2):
print(param1 + " " + param2)
display(param1="hello", param2="world") # 输出结果:hello world
display(param2="world", param1="hello") # 输出结果:hello world
注意:使用关键字实参时,务必准确指定函数定义中的形参名
2.3、默认参数
函数定义时,可以为参数指定默认值。调用函数时,如果没有为这些参数提供值,则使用默认值。如下:
def greet(name, greeting='Hello'):
print(f"{greeting}, {name}!")
greet('Alice') # 输出: Hello, Alice!
greet('Bob', 'Hi') # 输出: Hi, Bob!
注意:使用默认值时,必须先在形参列表中列出没有默认值的形参,再列出有默认值的形参
3、返回值
函数可以使用
return语句返回一个值给调用者。如果函数没有return语句,或者return后面没有跟值,则函数默认返回None。下面定义一个函数,返回值是字典,例如:
def build_person(first_name, last_name):
person = {"first":first_name, "last":last_name}
return person
musician = build_person("jimi", "hendirx")
print(musician) # 输出结果:{'first': 'jimi', 'last': 'hendirx'}

被折叠的 条评论
为什么被折叠?



