【超全面】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

相关文章
|
6天前
|
Python
python之print函数
python之print函数
13 0
|
9天前
|
测试技术 开发者 Python
Python中的装饰器:提升函数的灵活性和可重用性
在Python编程中,装饰器是一种强大的工具,它可以在不修改函数本身的情况下,动态地扩展函数的功能。本文将介绍装饰器的工作原理及其在实际开发中的应用,帮助读者更好地理解和利用这一特性。
|
6天前
|
分布式计算 算法 Python
Python函数进阶:四大高阶函数、匿名函数、枚举、拉链与递归详解
Python函数进阶:四大高阶函数、匿名函数、枚举、拉链与递归详解
|
8天前
|
存储 Python
在Python中,匿名函数(lambda表达式)是一种简洁的创建小型、一次性使用的函数的方式。
【6月更文挑战第24天】Python的匿名函数,即lambda表达式,用于创建一次性的小型函数,常作为高阶函数如`map()`, `filter()`, `reduce()`的参数。lambda表达式以`lambda`开头,后跟参数列表,冒号分隔参数和单行表达式体。例如,`lambda x, y: x + y`定义了一个求和函数。在调用时,它们与普通函数相同。例如,`map(lambda x: x ** 2, [1, 2, 3, 4, 5])`会返回一个列表,其中包含原列表元素的平方。
21 4
|
9天前
|
JSON 数据格式 索引
Python内置函数如`print()`输出信息,`len()`计算长度
【6月更文挑战第23天】Python内置函数如`print()`输出信息,`len()`计算长度,`type()`识别类型,`range()`生成序列,`sum()`求和,`min()`和`max()`找极值,`abs()`取绝对值,`round()`四舍五入,`sorted()`排序,`zip()`和`enumerate()`组合及遍历,`map()`和`filter()`应用函数。标准库如`os`用于操作系统交互,`sys`处理解释器信息,`math`提供数学运算,`re`支持正则表达式,`json`处理JSON数据。学习这些能提升编程效率。
25 5
|
8天前
|
Python
在Python中,高阶函数是指那些可以接受一个或多个函数作为参数,并返回一个新的函数的函数。
【6月更文挑战第24天】Python的高阶函数简化代码,增强可读性。示例:`map()`检查用户名合法性,如`[&quot;Alice&quot;, &quot;Bob123&quot;, &quot;Charlie!&quot;, &quot;David7890&quot;]`;`reduce()`与`lambda`结合计算阶乘,如1到10的阶乘为3628800;`filter()`找出1到100中能被3整除的数,如[3, 6, 9, ..., 99]。
14 3
|
8天前
|
分布式计算 大数据 调度
MaxCompute产品使用问题之为什么用python写的udf函数跑起来比本地还要慢
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
12天前
|
数据安全/隐私保护 Python
Python装饰器是高阶函数,用于在不修改代码的情况下扩展或修改函数行为。它们提供可重用性、模块化和无侵入性的功能增强。
【6月更文挑战第20天】Python装饰器是高阶函数,用于在不修改代码的情况下扩展或修改函数行为。它们提供可重用性、模块化和无侵入性的功能增强。例如,`@simple_decorator` 包装`my_function`,在调用前后添加额外操作。装饰器还能接受参数,如`@logged(&quot;INFO&quot;, &quot;msg&quot;)`,允许动态定制功能。
17 6
|
8天前
|
SQL 分布式计算 大数据
MaxCompute产品使用问题之建了一个python 的 UDF脚本,生成函数引用总是说类不存在,是什么导致的
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。

相关实验场景

更多