Python函数总结

简介: Python函数总结

定义函数
定义函数的语法如下:

def function_name(parameters):

# code to be executed

其中def是关键字,后面紧跟函数名和圆括号,圆括号内可以包含一个或多个参数,参数用逗号隔开。参数是函数执行时需要输入的值,它们在函数内都可以被当作变量使用。函数定义的末尾需要一个冒号,接下来的代码块应该缩进。举个例子,下面代码定义一个函数say_hello,它接受一个参数name,并打印一条问候语:

def say_hello(name):
print("Hello, " + name + "!")

say_hello("Alice") # 输出 "Hello, Alice!"
say_hello("Bob") # 输出 "Hello, Bob!"
函数也可以返回值。使用关键字return 可以将函数的执行结果返回给调用者。例如,下面的函数add会将两个数相力并返回结果:

def add(a, b):
return a + b

result = add(1, 2) # 调用函数并将结果赋值给变量 result
print(result) # 输出 3
自定义函数
Python中使用def来定义函数,并使用return来返回特定的值。

看一个简单的函数的例子:

def my_function(x, y, z):
if z > 1:
return z * (x + y)
else:
return z / (x + y)
把我们之前讲的斐波拉赫数列的例子重新用函数来定义,可以这样写:

def fib(n):
a, b = 0, 1
while a < n:
print(a, end=' ')
a, b = b, a+b
print()

调用函数

fib(1000)

这样我们在调用my_function可以只用传递两个参数,最后的z可以使用默认的参数值。

注意,默认值只会执行一次,如果你传入的参数是可变对象(列表,字典和类实例)的话,我们需要注意这个问题:

def f(a, L=[]):
L.append(a)
return L

print(f(1))
print(f(2))
print(f(3))

输出

[1]
[1, 2]
[1, 2, 3]
如果不想在后面的调用中共享默认值,那么可以把默认值的赋值放到函数体内部:

def f(a, L=None):
if L is None:
L = []
L.append(a)
return L
内置函数
除了用户的自定义函数之外,Python内置了一些非常有用的函数:

内置函数

abs()

delattr()

hash()

memoryview()

set()

all()

dict()

help()

min()

setattr()

any()

dir()

hex()

next()

slice()

ascii()

divmod()

id()

object()

sorted()

bin()

enumerate()

input()

oct()

staticmethod()

bool()

eval()

int()

open()

str()

breakpoint()

exec()

isinstance()

ord()

sum()

bytearray()

filter()

issubclass()

pow()

super()

bytes()

float()

iter()

print()

tuple()

callable()

format()

len()

property()

type()

chr()

frozenset()

list()

range()

vars()

classmethod()

getattr()

locals()

repr()

zip()

compile()

globals()

map()

reversed()

import()

complex()

hasattr()

max()

round()

我总结了以下几点:

abs():返回数字的绝对值。
all():如果所有元素都为真,则返回 True,否则返回 False。
any():如果任何元素为真,则返回 True,否则返回 False。
bin():将整数转换为二进制字符串。
bool():将值转换为布尔值。
chr():将整数转换为 Unicode 字符。
dict():创建一个新的字典。
float():将数字或字符串转换为浮点数。
hex():将整数转换为十六进制字符串。
int():将数字或字符串转换为整数。
len():返回序列的长度。
list():创建一个新的列表。
max():返回序列中的最大值。
min():返回序列中的最小值。
oct():将整数转换为八进制字符串。
open():打开文件。
ord():将字符转换为 ASCII 整数。
range():生成一个数字序列。
round():对数字进行四舍五入。
set():创建一个新的集合。
str():将值转换为字符串。
tuple():创建一个新的元组。
type():返回值的类型。
函数式方程
使用函数来定义计算的编程范式称为函数式编程。不可更改状态的概念是函数式编程的关键定义特征之一。

计算是通过命令式编程中的语句完成的,这可以说是您已经熟悉的最流行的编程范式。这些命令会影响变量的值,从而影响执行后的计算状态。例如,for 循环可以重复执行一条语句,每次更改变量的值,如下所示:

counter = 0
for i in range(10):
counter += 1
在循环的每次迭代中,计数器的值每次增加 1 时,计算状态都会发生变化,使其更接近结束状态。

高阶函数
在函数式编程中,高阶函数是我们定义计算的主要工具。这些是将函数作为参数并返回函数作为结果的函数。Reduce()、map() 和 filter() 是 Python 中最有用的三个高阶函数。当与更简单的功能配对时,它们可用于执行复杂的操作。

下面的代码示例演示了一个高阶函数。print greeting() 接受两个参数:函数 f 和名称 n,并返回调用 f 的结果。(n)

def greet(name):
return "Hello, {}!".format(name)
def print_greeting(f, n):
print(f(n))
函数标注
之前我们讨论的是简单的自定义函数形式,我们并不知道函数的参数类型和返回值类型,其实函数可以写得更加详细一些,这就要用到函数标注了。

所谓函数标注就是用户自定义函数中的类型的可选元数据信息。

函数标注是以字典的形式存放在 annotations 属性中的。我们在参数的名称后面加上冒号,后面跟一个表达式,那么这个表达式会被求值为标注的值。对于返回值来说,返回值标注的定义是加上一个组合符号 ->,后面跟一个表达式,该标注位于形参列表和表示 def 语句结束的冒号之间。

举个例子:

def f(ham: str, eggs: str = 'eggs') -> str:
... print("Annotations:", f.annotations)
... print("Arguments:", ham, eggs)
... return ham + ' and ' + eggs
...
f('spam')
Annotations: {'ham': , 'return': , 'eggs': }
Arguments: spam eggs
'spam and eggs'

其实使用函数标注写出来的程序更加清晰,可读性更高。

目录
相关文章
|
23天前
|
开发者 Python 容器
python函数基础以及函数参数简解
python函数基础以及函数参数简解
|
3天前
|
Python
全网最适合入门的面向对象编程教程:Python函数方法与接口-函数与方法的区别和lamda匿名函数
【9月更文挑战第15天】在 Python 中,函数与方法有所区别:函数是独立的代码块,可通过函数名直接调用,不依赖特定类或对象;方法则是与类或对象关联的函数,通常在类内部定义并通过对象调用。Lambda 函数是一种简洁的匿名函数定义方式,常用于简单的操作或作为其他函数的参数。根据需求,可选择使用函数、方法或 lambda 函数来实现代码逻辑。
|
16天前
|
Python
python 函数
【9月更文挑战第4天】python 函数
35 5
WK
|
23天前
|
Python
python中的函数有哪些种类?
在 Python 中,函数根据定义方式、用途及来源可分为多种类型:自带的内置函数(如 print(), len())无需导入直接使用;标准库函数需导入相应模块后使用;第三方库函数则需先安装库再导入使用;用户自定义函数可根据需求定义并多次调用;匿名函数(lambda)无函数名,常用于需要函数对象但不想单独定义的情形;高阶函数接受或返回函数;装饰器函数可在不改动原函数代码情况下为其添加新功能;生成器函数使用 yield 逐个返回值;递归函数在自身定义中调用自身;嵌套函数在一个函数内定义,可访问外部函数变量。各种函数类型在编程中有不同的用途和优势。
WK
39 12
|
22天前
|
Python
Python 中 help() 和 dir() 函数的用法
【8月更文挑战第29天】
19 5
|
23天前
|
Python
12类常用的Python函数
12类常用的Python函数
|
23天前
|
Python
python中getattr函数 hasattr函数
python中getattr函数 hasattr函数
|
23天前
|
算法 Python
python函数递归和生成器
python函数递归和生成器
|
22天前
|
Python
Python eval()函数的使用
Python eval()函数的使用
18 1
|
23天前
|
Python
python常用内置函数
python常用内置函数