Python的def函数用于定义函数,通过关键字def后跟函数名和括号内的参数来创建。
Python的def函数
在Python编程语言中,def
关键字被用来定义一个函数,函数是一段组织好的、可重复使用的、用来实现单一功能的代码,Python提供了强大的功能来支持函数的使用,包括默认参数、可变参数列表、匿名(lambda)函数等。
1、函数定义
使用def
关键字后跟函数名和一对圆括号来创建函数,任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数,函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
def function_name(parameters): """docstring""" statement(s)
2、函数调用
一旦函数被定义,就可以通过函数名加括号的形式来调用它,如果函数需要参数,这些参数需要放在括号内,用逗号隔开。
function_name(arguments)
3、返回值
return
语句用于结束函数,并选择性地从函数中返回一个值给调用程序,如果没有返回语句或者返回语句没有带表达式,函数将返回None
。
def add(a, b): return a + b result = add(5, 3) print(result) 输出: 8
4、局部变量和全局变量
在函数内部声明的变量是局部变量,仅在函数内部有效,全局变量是在函数外部定义的,可以在整个程序范围内访问。
5、默认参数
可以在函数定义时为参数指定默认值,这样在调用函数时如果不提供该参数的值,就会使用默认值。
def greet(name, greeting="Hello"): return greeting + ", " + name print(greet("Alice")) 输出: Hello, Alice print(greet("Bob", "Good morning")) 输出: Good morning, Bob
6、可变参数
使用*args
可以收集所有未命名的参数到一个元组中,而**kwargs
则是用来收集所有未命名的关键字参数到一个字典中。
def func(*args, **kwargs): print(args) print(kwargs) func(1, 2, 3, a=4, b=5, c=6) 输出: (1, 2, 3) {'a': 4, 'b': 5, 'c': 6}
7、匿名函数(Lambda函数)
lambda
关键字用于创建小的匿名函数,它可以接受任意数量的参数,但只能有一个表达式。
f = lambda x, y: x + y print(f(10, 20)) 输出: 30
相关问题与解答
Q1: 如何定义一个不接受任何参数也不返回任何值的函数?
A1: 你可以定义一个不接受任何参数且不包含return
语句的函数。
def say_hello(): print("Hello!")
Q2: 如何在函数内部修改全局变量的值?
A2: 要在函数内部修改全局变量的值,需要使用global
关键字声明该变量。
x = 10 def change_global(): global x x = 20 change_global() print(x) 输出: 20
Q3: 能否在函数调用时只提供部分参数的值?
A3: 可以,但是必须保证省略的是最后一个或多个参数,并且这些参数有默认值。
def func(a, b=10, c=20): print(a, b, c) func(1) 输出: 1 10 20 func(1, 3) 输出: 1 3 20
Q4: lambda函数和普通函数有何不同?
A4: lambda函数比普通函数更加简洁,但是它只能包含一个表达式,不能包含复杂的逻辑,适用于需要一个简单的函数对象作为参数的情况。
评论(0)