Python是一种高级语言,常用于快速开发原型、网站、科学计算、人工智能等领域。Python的函数是将多条语句组织在一起以完成特定功能的程序代码块,用户可以根据需要将代码封装进函数中。
一、Python函数的定义与调用
1、定义函数
def 函数名(参数列表):
函数体
return 返回值
参数列表是可以省略的,参数用逗号分隔,返回值也可以省略。
2、调用函数
函数定义好后,可以通过以下调用方式执行函数:
函数名(参数列表)
例如:
def area(width, height):
return width * height
print("长方形面积:", area(4, 5))
二、Python函数的参数传递
1、位置参数
参数按照位置顺序依次赋给形参,调用函数时,必须以正确的顺序传递参数值:
def power(x, n):
result = 1
while n > 0:
result *= x
n -= 1
return result
print("2的3次方是", power(2, 3))
2、关键字参数
通过指定参数名来给参数传值,不需要考虑参数位置,可以混合使用位置参数和关键字参数:
def info(name, age, sex):
print("Name:", name)
print("Age:", age)
print("Sex:", sex)
info(age=18, name="Tom", sex="Male")
3、默认参数
在函数定义时,可以将一个参数设定为默认值,即调用函数时,如果该参数没有传入数据,则使用默认值:
def info(name, age, sex="Male"):
print("Name:", name)
print("Age:", age)
print("Sex:", sex)
info(name="Tom", age=18) # 输出Sex为Male
三、Python函数的返回值
在Python函数中,通过return语句将返回值返回给调用函数,Python中的函数可以返回多个值,并且返回的结果可以是各种数据类型,包括数字、字符串、列表、字典等。
def summation(x, y):
sum = x + y
diff = x - y
return sum, diff
a, b = summation(10, 7)
print("Sum is", a)
print("Diff is", b)
四、Python匿名函数
Python中的匿名函数是一种简单的函数,它没有函数名,通常使用lambda关键字定义,常用于某些不需要复杂的函数场景中。
sum = lambda x, y : x + y
print("Sum is", sum(10, 7))
五、Python递归函数
递归函数是一种在函数内调用函数自身的方式,该函数不断调用自身,直到达到预设条件才停止递归。
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n - 1)
print("5的阶乘是", factorial(5))
六、Python高阶函数
高阶函数是指将其他函数作为参数传入或者是将函数作为返回值的函数。高阶函数在Python中得到广泛应用,如map、filter、reduce和sorted等。
1、map函数
map函数接受两个参数,第一个为函数,第二个为一个迭代器,该函数对迭代器中的每一个元素都执行一遍,最终返回一个迭代器:
def square(x):
return x * x
number = [1, 2, 3, 4, 5, 6]
print(list(map(square, number)))
2、filter函数
filter函数也接受两个参数,第一个是函数,第二个是迭代器。 通过筛选出来的元素创建一个新的迭代器返回。
def is_even(n):
return n % 2 == 0
number = [1, 2, 3, 4, 5, 6]
print(list(filter(is_even, number)))
3、reduce函数
reduce函数也接受两个参数,第一个是函数,第二个是迭代器。从左向右对每一个元素进行操作并返回结果,最终返回一个值:
from functools import reduce
def sum(x, y):
return x + y
number = [1, 2, 3, 4, 5, 6]
print(reduce(sum, number))
4、sorted函数
从 Python2.x 到 3.x,Python内置排序函数sorted()已经解决了大部分问题。sorted()函数接收一个指定可迭代类型的列表,返回该可迭代类型的排序后的列表:
number = [3, 2, 8, 4, 1, 5, 7, 6]
print(sorted(number))
原创文章,作者:HYKUA,如若转载,请注明出处:https://www.506064.com/n/374922.html