Python函数总结

简介: Python函数总结

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

def function_name(parameters):

# code to be executed
AI 代码解读

其中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'

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

目录
打赏
0
0
0
0
7
分享
相关文章
|
12天前
|
Python format()函数高级字符串格式化详解
在 Python 中,字符串格式化是一个重要的主题,format() 函数作为一种灵活且强大的字符串格式化方法,被广泛应用。format() 函数不仅能实现基本的插入变量,还支持更多高级的格式化功能,包括数字格式、对齐、填充、日期时间格式、嵌套字段等。 今天我们将深入解析 format() 函数的高级用法,帮助你在实际编程中更高效地处理字符串格式化。
63 0
Python 的内建函数
Python 的内置函数列表,方便查询使用方法。
Python内置函数ord()详解
`ord()` 是 Python 中用于将单个字符转换为对应 Unicode 码点的核心函数,支持 ASCII、多语言字符及特殊符号。其返回值为整数(范围 0-1114111),适用于字符编码验证、数据清洗、自定义排序、基础加解密等场景。使用时需注意参数长度必须为 1,否则会触发 `TypeError`。结合 `chr()` 函数可实现双向转换,进阶技巧包括多字节字符处理、编码范围检测及字符分类验证等。
Python中main函数:代码结构的基石
在Python中,`main`函数是程序结构化和模块化的重要组成部分。它实现了脚本执行与模块导入的分离,避免全局作用域污染并提升代码复用性。其核心作用包括:标准化程序入口、保障模块复用及支持测试驱动开发(TDD)。根据项目复杂度,`main`函数有基础版、函数封装版、参数解析版和类封装版四种典型写法。 与其他语言相比,Python的`main`机制更灵活,支持同一文件作为脚本运行或模块导入。进阶技巧涵盖多文件项目管理、命令行参数处理、环境变量配置及日志集成等。此外,还需注意常见错误如全局变量污染和循环导入,并通过延迟加载、多进程支持和类型提示优化性能。
285 0
[oeasy]python091_列表_索引_index_中括号_索引函数
本文介绍了Python中列表与字符串的索引及index函数用法。通过range生成列表,使用索引[]访问和修改列表元素,index函数查找元素位置。字符串支持索引访问但不可直接修改。还探讨了16进制数在Python中的表示方法,以及日期、月份等特殊字符的Unicode范围。最后总结了列表与字符串操作的区别,并预告后续内容,提供蓝桥云课、GitHub和Gitee链接供进一步学习。
90 20
|
3月前
|
[oeasy]python086方法_method_函数_function_区别
本文详细解析了Python中方法(method)与函数(function)的区别。通过回顾列表操作如`append`,以及随机模块的使用,介绍了方法作为类的成员需要通过实例调用的特点。对比内建函数如`print`和`input`,它们无需对象即可直接调用。总结指出方法需基于对象调用且包含`self`参数,而函数独立存在无需`self`。最后提供了学习资源链接,方便进一步探索。
94 17
[oeasy]python083_类_对象_成员方法_method_函数_function_isinstance
本文介绍了Python中类、对象、成员方法及函数的概念。通过超市商品分类的例子,形象地解释了“类型”的概念,如整型(int)和字符串(str)是两种不同的数据类型。整型对象支持数字求和,字符串对象支持拼接。使用`isinstance`函数可以判断对象是否属于特定类型,例如判断变量是否为整型。此外,还探讨了面向对象编程(OOP)与面向过程编程的区别,并简要介绍了`type`和`help`函数的用法。最后总结指出,不同类型的对象有不同的运算和方法,如字符串有`find`和`index`方法,而整型没有。更多内容可参考文末提供的蓝桥、GitHub和Gitee链接。
86 11
Python学习:内建属性、内建函数的教程
本文介绍了Python中的内建属性和内建函数。内建属性包括`__init__`、`__new__`、`__class__`等,通过`dir()`函数可以查看类的所有内建属性。内建函数如`range`、`map`、`filter`、`reduce`和`sorted`等,分别用于生成序列、映射操作、过滤操作、累积计算和排序。其中,`reduce`在Python 3中需从`functools`模块导入。示例代码展示了这些特性和函数的具体用法及注意事项。
|
5月前
|
Python中的round函数详解及使用示例
`round()`函数是Python内置的用于四舍五入数字的工具。它接受一个数字(必需)和可选的小数位数参数,返回最接近的整数或指定精度的浮点数。本文详细介绍其用法、参数及示例,涵盖基本操作、负数处理、特殊情况及应用建议,帮助你更好地理解和运用该函数。
575 2
[oeasy]python069_当前作用域都有些什么_列表dir_函数_builtins
本文介绍了Python中`dir()`函数的使用方法及其作用。`dir()`可以列出当前作用域内的所有变量和成员,类似于`locals()`,但`dir()`不仅限于本地变量,还能显示模块中的所有成员。通过`dir(__builtins__)`可以查看内建模块中的所有内建函数,如`print`、`ord`、`chr`等。此外,还回顾了`try-except-finally`结构在数据库连接中的应用,并解释了为何`print`函数可以直接使用而无需导入,因为它位于`__builtins__`模块中。最后,简要提及了删除`__builtins__.print`的方法及其影响。
94 2

热门文章

最新文章

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问