【超全面】Python内置函数详解(一)

简介: 【超全面】Python内置函数详解(一)

01、abs()

描述: 返回数字绝对值或复数的模

语法: abs( x )

参数: x 数值表达式。

案例:

abs(-6)
6
 
abs(5j+4)
6.4031242374328485

02、all()

描述: 接受一个迭代器,如果迭代器(元组或列表)的所有元素都为真,那么返回True,否则返回False,元素除了是 0、空、None、False 外都算 True。


注意: 空元组、空列表返回值为True,这里要特别注意。


语法: all(iterable)


参数: iterable – 元组或列表

all([1,0,3,6])
False

all([1,9,3,6])
True

all(['a', 'b', '', 'd'])
False

all([]) #空列表为真
True 

all(()) #空元组为真
True

03、any()

描述: 接受一个迭代器,如果迭代器里有一个元素为真,那么返回True,否则返回False,元素除了是 0、空、None、False 外都算 True。

语法: any (iterable)

参数: iterable – 元组或列表

案例:

any([0,0,0,[]])
False
 
any([0,0,1])
True
 
any((0, '', False))  
False
 
any([]) # 空列表
False
 
any(()) # 空元组
False

04、ascii()

描述: ascii() 函数返回任何对象(字符串,元组,列表等)的可读版本。


ascii() 函数会将所有非 ascii 字符替换为转义字符:


å 将替换为 \xe5。


语法: ascii(object)


参数: *object–*对象,可以是元组、列表、字典、字符串、set()创建的集合。


案例:


ascii('中国')
"'\\u4e2d\\u56fd'"

ascii('新冠肺炎')
"'\\u65b0\\u51a0\\u80ba\\u

ascii("My name is Ståle")
"'My name is St\\xe5le'"

print(ascii((1,2))) #元组
(1, 2)
print(type(ascii((1,2))))
<class 'str'>

print(ascii([1,2])) #列表
[1, 2]
print(type(ascii([1,2])))
<class 'str'>

print(ascii('?')) #字符串,非 ASCII字符,转义
'\uff1f'
print(type(ascii("?")))
<class 'str'>

print(ascii({1:2,'name':5})) #字典
{1: 2, 'name': 5}
print(type(ascii({1:2,'name':5})))
<class

ASCII码表具体如下所示

Bin(二进制) Oct(八进制) Dec(十进制) Hex(十六进制) 缩写/字符 解释
0000 0000 00 0 0x00 NUL(null) 空字符
0000 0001 01 1 0x01 SOH(start of headline) 标题开始
0000 1010 012 10 0x0A LF (NL line feed, new line) 换行键
0010 0100 044 36 0x24 $ 美元符
0010 0101 045 37 0x25 % 百分号
0010 1010 052 42 0x2A * 星号
0011 0010 062 50 0x32 2 字符2
0011 0111 067 55 0x37 7 字符7
0011 1000 070 56 0x38 8 字符8
0011 1001 071 57 0x39 9 字符9
0100 0000 0100 64 0x40 @ 电子邮件符号
0100 0001 0101 65 0x41 A 大写字母A
0110 0101 0145 101 0x65 e 小写字母e
0110 1100 0154 108 0x6C l 小写字母l
0110 1101 0155 109 0x6D m 小写字母m
0110 1110 0156 110 0x6E n 小写字母n
0110 1111 0157 111 0x6F o 小写字母o
0111 0000 0160 112 0x70 p 小写字母p
0111 1110 0176 126 0x7E ~ 波浪号
0111 1111 0177 127 0x7F DEL (delete) 删除

05、bin()

描述 :bin() 返回一个整数 int 或者长整数 long int 的二进制表示。将十进制转换为二进制

语法: bin(x)

参数: x – int 或者 long int 数字

案例:

bin(2)
'0b10'

bin(20)'
0b10100'

06、oct()

描述: 将十进制转换为八进制

语法: oct(x)

参数: x – 整数。

案例:

oct(8)
'0o10'

oct(43)
'0o53'

07、hex()

描述: hex() 函数用于将10进制整数转换成16进制,以字符串形式表示。

语法: hex(x)

参数: x – 10进制整数。

案例:

将十进制转换为十六进制
hex(43)
'0x2b'#43等于2B

hex(15)
'0xf'

08、bool()

描述: 测试一个对象是True, 还是False.bool 是 int 的子类。

语法: class bool([x])

参数: x – 要进行转换的参数。

案例:

bool([0,0,0])
True

bool([])
False

issubclass(bool, int) # bool 是 int 子类
True

09、bytes()

描述: 将一个字符串转换成字节类型

语法: class bytes([source[, encoding[, errors]]])

参数:

如果 source 为整数,则返回一个长度为 source 的初始化数组;

如果 source 为字符串,则按照指定的 encoding 将字符串转换为字节序列;

如果 source 为可迭代类型,则元素必须为[0 ,255] 中的整数;

如果 source 为与 buffer 接口一致的对象,则此对象也可以被用于初始化 bytearray。

如果没有输入任何参数,默认就是初始化数组为0个元素。

案例:

s = "apple"
bytes(s,encoding='utf-8')
b'apple'

bytes([1,2,3,4])
b'\x01\x02\x03\x04'

10、str()

描述: str() 函数将对象转化为适于人阅读的形式。将字符类型、数值类型等转换为字符串类型

语法: class str(object=’’)

参数: object – 对象。

案例:

integ = 100

str(integ)'100'
dict = {'baidu': 'baidu.com', 'google': 'google.com'};str(dict)"{'baidu': 'baidu.com', 'google': 'google.com'}"

11、callable()

描述: 判断对象是否可以被调用,能被调用的对象就是一个callable 对象,对于函数、方法、lambda 函式、 类以及实现了 call 方法的类实例, 它都返回 True。

语法: callable(object)

参数: object – 对象

案例:

callable(0)False
def add(x, y):  return x + y
callable(add)True

12、chr()

描述: chr() 用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应的字符。

语法: chr(i)

参数: i – 可以是10进制也可以是16进制的形式的数字。

案例:

查看十进制整数对应的ASCII字符chr(65)'A'可以参考4案例中的表

13、ord()

描述: 查看某个ascii对应的十进制数

语法: ord©

参数: c – 字符。

案例:

ord('A')65
ord('~')126

14、classmethod()

**描述:**classmethod 修饰符对应的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象等。

**语法:**classmethod

参数:无

案例:

class Sample(object):
    bar = 1
    def fun1(self):  
        print ('foo') 
        
    @classmethod
    def fun2(cls):
        print ('fun2')
        print (cls.bar)
        cls().fun1()   # 调用 foo 方法
 
Sample.fun2()  # 不需要实例化
fun2
1
foo

15、compile()

**描述:**compile() 函数将一个字符串编译为字节代码。

**语法:**compile(source, filename, mode[, flags[, dont_inherit]])

参数:

source – 字符串或者AST(Abstract Syntax Trees)对象。。

filename – 代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。

mode – 指定编译代码的种类。可以指定为 exec, eval, single。

flags – 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。。

flags和dont_inherit是用来控制编译源码时的标志

案例:

将字符串编译成python能识别或可以执行的代码,也可以将文字读成字符串再编译。
s = "print('helloworld')"
r = compile(s,"<string>", "exec")
 
r
<code object <module> at 0x000000000F819420, file "<string>", line 1>
exec(r)
helloworld
str = "for i in range(0,5): print(i)" 
c = compile(str,'','exec')   # 编译为字节代码对象 
c
<code object <module> at 0x000001EB82C91ED0, file "", line 1>
exec(c)
0
1
2
3
4

16、complex()

**描述:**创建一个复数

**语法:**class complex([real[, imag]])

参数:

  • real – int, long, float或字符串;
  • imag – int, long, float;

案例:

complex(1,2)
(1+2j) 

complex('1')
(1+0j)
complex("1+2j")
(1+2j)

17、delattr()

**描述:**删除对象的属性

**语法:**delattr(object, name)

参数:

  • object – 对象。
  • name – 必须是对象的属性。

案例:

class Coordinate:
    x = 10
    y = -5
    z = 0
 
point1 = Coordinate() 

print('x = ',point1.x)
x =  10
print('y = ',point1.y)
y =  -5
print('z = ',point1.z)
z =  0
delattr(Coordinate, 'z')
 
print('--删除 z 属性后--')

print('z = ',point1.z)# 触发错误
AttributeError: 'Coordinate' object has no attribute 'z'

dir(Coordinate)
['__class__
省略部分
 'x',
 'y'

18、dict()

**描述:**创建数据字典


语法:


class dict(**kwarg)


class dict(mapping, **kwarg)


class dict(iterable, **kwarg)


参数:


**kwargs – 关键字

mapping – 元素的容器。

iterable – 可迭代对象。

案例:

#创建空字典

dict()                       
{}

#传入关键字
dict(a='a', b='b', t='t')   
{'a': 'a', 'b': 'b', 't': 't'}
# 映射函数方式来构造字典
dict(zip(['one', 'two', 'three'], [1, 2, 3]))  
{'three': 3, 'two': 2, 'one': 1} 
#可迭代对象方式来构造字典
dict([('one', 1), ('two', 2), ('three', 3)])    
{'three': 3, 'two': 2, 'one':

19、dir()

**描述:**dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。


**语法:**dir([object])


**参数:**object – 对象、变量、类型。

案例:

dir()   #  获得当前模块的属性列表
['In',
 'Out',
 '_',
 '__',
 '___',
 '__builtin__',
 '__builtins__',
 '__doc__',
 '__loader__',
 '__name__',
 '__package__',
 '__spec__',
 '_dh',
 '_i',
 '_i1',
 '_ih',
 '_ii',
 '_iii',
 '_oh',
 'exit',
 'get_ipython',
 'quit']
dir([ ])# 查看列表的方法
dir(list())# 查看列表的方法
['__add__',
 '__class__',
 '__contains__',
 '__delattr__',
 '__delitem__',
 '__dir__',

 '__str__',
 '__subclasshook__',
 'append',
 'clear',
 'copy',
 'count',
 'extend',
 'index',
 'insert',
 'pop',
 'remove',
 'reverse',
 'sort']

print(dir(str))#获取所有的方法
print(dir(list))#获取所有的方法
print(dir(dict))#获取所有的

不带参数时返回当前范围内的变量,方法和定义的类型列表;带参数时返回参数的属性,方法列表。

20、divmod()

**描述:**divmod() 函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)。

**语法:**divmod(a, b)

**参数:**a: 数字–被除数

b: 数字–除数

案例:

divmod(11,3)
(3, 2)

divmod(20,4)
(5, 0)

21、enumerate()

**描述:**enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。返回一个可以枚举的对象,该对象的next()方法将返回一个元组。


**语法:**enumerate(sequence, [start=0])


**参数:**sequence – 一个序列、迭代器或其他支持迭代对象。


start – 下标起始位置。


案例:

L = [‘Spring’, ‘Summer’, ‘Fall’, ‘Winter’]

enumerate(L)
<enumerate at 0x226e1ee1138>#生成的额迭代器,无法直接查看
list(enumerate(L))#列表形式,可以看到内部结构,默认下标从0开始
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
 
list(enumerate(L, start=1)) #下标从 1 开始
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

for i,v in enumerate(L):
    print(i,v)
0 Spring
1 Summer
2 Fall
3 Winter
for i,v in enumerate(L,1):
    print(i,v)

1 Spring
2 Summer
3 Fall
4 Winter

s = ["a","b","c"]
 
for i ,v in enumerate(s,2):
    print(i,v)
2 a
3 b
4 c
普通的 for 循环
i = 0
seq = ['one', 'two', 'three']
for element in seq:
    print (i, seq[i])
    i+= 1
0 one
1 two
2 three

在看一个普通循环的对比案例    
for 循环使用 enumerate
 
seq = ['one', 'two', 'three']
for i, element in enumerate(seq):
    print (i, element)
0 one
1 two
2 three
 
seq = ['one', 'two', 'three']
for i, element in enumerate(seq,2):
    print (i, element)
2 one
3 two

22、eval()

**描述:**将字符串str 当成有效的表达式来求值并返回计算结果取出字符串中内容

**语法:**eval(expression[, globals[, locals]])

参数:

  • expression – 表达式。
  • globals – 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
  • locals – 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。

案例:

s = "1 + 3 +5"
eval(s)
9
#要统计图片的数量
str1 = "['https://ww1.sin5n.jpg', 'https://ww1.siqk4he.jpg']"
len(eval(str1))
2

len(str1)
5


【超全面】Python内置函数详解(二):https://developer.aliyun.com/article/1540493

相关文章
|
22天前
|
Python
【python从入门到精通】-- 第五战:函数大总结
【python从入门到精通】-- 第五战:函数大总结
56 0
|
19天前
|
Python
Python之函数详解
【10月更文挑战第12天】
Python之函数详解
|
20天前
|
存储 数据安全/隐私保护 索引
|
9天前
|
测试技术 数据安全/隐私保护 Python
探索Python中的装饰器:简化和增强你的函数
【10月更文挑战第24天】在Python编程的海洋中,装饰器是那把可以令你的代码更简洁、更强大的魔法棒。它们不仅能够扩展函数的功能,还能保持代码的整洁性。本文将带你深入了解装饰器的概念、实现方式以及如何通过它们来提升你的代码质量。让我们一起揭开装饰器的神秘面纱,学习如何用它们来打造更加优雅和高效的代码。
|
11天前
|
弹性计算 安全 数据处理
Python高手秘籍:列表推导式与Lambda函数的高效应用
列表推导式和Lambda函数是Python中强大的工具。列表推导式允许在一行代码中生成新列表,而Lambda函数则是用于简单操作的匿名函数。通过示例展示了如何使用这些工具进行数据处理和功能实现,包括生成偶数平方、展平二维列表、按长度排序单词等。这些工具在Python编程中具有高度的灵活性和实用性。
|
14天前
|
Python
python的时间操作time-函数介绍
【10月更文挑战第19天】 python模块time的函数使用介绍和使用。
19 4
|
15天前
|
存储 Python
[oeasy]python038_ range函数_大小写字母的起止范围_start_stop
本文介绍了Python中`range`函数的使用方法及其在生成大小写字母序号范围时的应用。通过示例展示了如何利用`range`和`for`循环输出指定范围内的数字,重点讲解了小写和大写字母对应的ASCII码值范围,并解释了`range`函数的参数(start, stop)以及为何不包括stop值的原因。最后,文章留下了关于为何`range`不包含stop值的问题,留待下一次讨论。
13 1
|
21天前
|
索引 Python
Python中的其他内置函数有哪些
【10月更文挑战第12天】Python中的其他内置函数有哪些
13 1
|
1月前
|
数据处理 Python
深入探索:Python中的并发编程新纪元——协程与异步函数解析
深入探索:Python中的并发编程新纪元——协程与异步函数解析
25 3
|
1月前
|
机器学习/深度学习 算法 C语言
【Python】Math--数学函数(详细附解析~)
【Python】Math--数学函数(详细附解析~)