Python自定义函数的规则包括以下几个方面:
定义函数的语法
定义函数需要使用def
关键字,并在括号中列出函数的参数,然后在冒号后面缩进写代码块。函数的返回值可以通过return
语句指定,如果没有指定则默认返回None
。
def function_name(parameter1, parameter2):
# function body
return value
参数传递
函数参数可以分为两种类型:形参(parameter)和实参(argument)。形参是在函数定义时列出的参数,实参是在函数调用时传递给函数的值。
在函数中,可以使用默认参数(默认值在函数定义时指定)和可变参数(指定一个可变数量的参数)。
示例代码:
def say_hello(name="Stranger"):
print("Hello, " + name + "!")
say_hello("Lucy") # output: "Hello, Lucy!"
say_hello() # output: "Hello, Stranger!"
可变参数使用*
表示,例如:
def my_sum(*numbers):
result = 0
for n in numbers:
result += n
return result
print(my_sum(1, 2, 3)) # output: 6
print(my_sum(1, 2, 3, 4, 5)) # output: 15
局部变量和全局变量
在函数内部定义的变量是局部变量,只能在函数内部使用。在函数外部定义的变量是全局变量,可以在函数内部和外部使用。
示例代码:
global_variable = 1
def func():
local_variable = 2
global global_variable
global_variable = 3
print(local_variable)
func()
print(global_variable) # output: 3
Lambda函数
Lambda函数是匿名函数,常常用于编写简短的代码块。Lambda函数由lambda
关键字指定,并在冒号后面跟随函数主体。
示例代码:
add = lambda x, y: x + y
print(add(2, 3)) # output: 5
函数式编程
Python支持函数式编程,比如map()
、filter()
等函数可以对序列进行转换和过滤。
示例代码:
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x*x, numbers))
print(squared) # output: [1, 4, 9, 16, 25]
even = list(filter(lambda x: x%2==0, numbers))
print(even) # output: [2, 4]
最后提醒一下,Python对缩进有严格要求,函数的代码块必须要有缩进,不然会出现语法错误。