文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python 内置函数

2023-01-30 21:58

关注

python内置了一系列的常用函数,以便于我们使用python。

基本的数据操作基本都是一些数学运算(当然除了加减乘除)、逻辑操作、集合操作、基本IO操作,然后就是对于语言自身的反射操作,还有就是字符串操作。


官方文档:

https://docs.python.org/3/library/functions.html?highlight=built#ascii

截图如下:

blob.png

简单做一下分类,参考文章

https://www.cnblogs.com/pyyu/p/6702896.html


一、数学运算类
abs(x)

求绝对值

1、参数可以是整型,也可以是复数

2、若参数是复数,则返回复数的模

complex([real[, imag]])创建一个复数
divmod(a, b)

分别取商和余数

注意:整型、浮点型都可以

float([x])将一个字符串或数转换为浮点数。如果无参数将返回0.0
int([x[, base]])将一个字符转换为int类型,base表示进制
long([x[, base]])将一个字符转换为long类型
pow(x, y[, z])返回x的y次幂
range([start], stop[, step])产生一个序列,默认从0开始
round(x[, n])四舍五入
sum(iterable[, start])对集合求和
oct(x)将一个数字转化为8进制
hex(x)将整数x转换为16进制字符串
chr(i)返回整数i对应的ASCII字符
bin(x)将整数x转换为二进制字符串
bool([x])将x转换为Boolean类型
二、集合类操作
basestring()

str和unicode的超类

不能直接调用,可以用作isinstance判断

format(value [, format_spec])

格式化输出字符串

格式化的参数顺序从0开始,如"I am {0},I like {1}"

unichr(i)返回给定int类型的unicode
enumerate(sequence [, start = 0])返回一个可枚举的对象,该对象的next()方法将返回一个tuple
iter(o[, sentinel])生成一个对象的迭代器,第二个参数表示分隔符
max(iterable[, args...][key])返回集合中的最大值
min(iterable[, args...][key])返回集合中的最小值
dict([arg])创建数据字典
list([iterable])将一个集合类转换为另外一个集合类
set()创建一个无序不重复元素集(集合)
frozenset([iterable])产生一个不可变的set
str([object])转换为string类型
sorted(iterable[, cmp[, key[, reverse]]])队集合排序
tuple([iterable])生成一个tuple类型
xrange([start], stop[, step]) xrange()函数与range()类似,但xrnage()并不创建列表,而是返回一个xrange对象,它的行为与列表相似,但是只在需要时才计算列表值,当列表很大时,这个特性能为我们节省内存
三、逻辑判断
all(iterable)

1、集合中的元素都为真的时候为真

2、特别的,若为空串返回为True

(非0为真,负数也是真,0为假)

any(iterable)

1、集合中的元素有一个为真的时候为真

2、特别的,若为空串返回为False

cmp(x, y)如果x < y ,返回负数;x == y, 返回0;x > y,返回正数
四、反射
callable(object)

检查对象object是否可调用

1、类是可以被调用的

2、实例是不可以被调用的,除非类中声明了__call__方法

classmethod()

1、注解,用来说明这个方式是个类方法

2、类方法即可被类调用,也可以被实例调用

3、类方法类似于Java中的static方法

4、类方法中不需要有self参数

compile(source, filename,

mode[, flags[, dont_inherit]])

将source编译为代码或者AST对象。代码对象能够通过exec语句来执行或者eval()进行求值。

1、参数source:字符串或者AST(Abstract Syntax Trees)对象。

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

3、参数model:指定编译代码的种类。可以指定为 ‘exec’,’eval’,’single’。

4、参数flag和dont_inherit:这两个参数暂不介绍

dir([object])

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

2、带参数时,返回参数的属性、方法列表。

3、如果参数包含方法__dir__(),该方法将被调用。当参数为实例时。

4、如果参数不包含__dir__(),该方法将最大限度地收集参数信息

delattr(object, name)删除object对象名为name的属性
eval(expression [, globals [, locals]])将字符串str当成有效的表达式来求值并返回计算结果
execfile(filename [, globals [, locals]])用法类似exec(),不同的是execfile的参数filename为文件名,而exec的参数为字符串。
filter(function, iterable)

构造一个序列,等价于[ item for item in iterable if function(item)]

1、参数function:返回值为True或False的函数,可以为None

2、参数iterable:序列或可迭代对象

getattr(object, name [, defalut])获取一个类的属性
globals()返回一个描述当前全局符号表的字典
hasattr(object, name)判断对象object是否包含名为name的特性
hash(object)如果对象object为哈希表类型,返回对象object的哈希值
id(object)返回对象的唯一标识
isinstance(object, classinfo)判断object是否是class的实例
issubclass(class, classinfo)判断是否是子类
len(s)返回集合长度
locals()返回当前的变量列表
map(function, iterable, ...)遍历每个元素,执行function操作
memoryview(obj)返回一个内存镜像类型的对象
next(iterator[, default])类似于iterator.next()
object()基类
property([fget[, fset[, fdel[, doc]]]])属性访问的包装类,设置后可以通过c.x=value等来访问setter和getter
reduce(function, iterable[, initializer])合并操作,从第一个开始是前两个参数,然后是前两个的结果与第三个合并进行处理,以此类推
reload(module)重新加载模块
setattr(object, name, value)设置属性值
repr(object)将一个对象变幻为可打印的格式
slice()
staticmethod声明静态方法,是个注解
super(type[, object-or-type])引用父类
type(object)返回该object的类型
vars([object])返回对象的变量,若无参数与dict()方法类似
bytearray([source [, encoding [, errors]]])

返回一个byte数组

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

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

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

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

zip([iterable, ...])实在是没有看懂,只是看到了矩阵的变幻方面
五、IO操作
file(filename [, mode [, bufsize]])

file类型的构造函数,作用为打开一个文件,如果文件不存在且mode为写或追加时,文件将被创建。添加‘b’到mode参数中,将对文件以二进制形式操作。添加‘+’到mode参数中,将允许对文件同时进行读写操作

1、参数filename:文件名称。

2、参数mode:'r'(读)、'w'(写)、'a'(追加)。

3、参数bufsize:如果为0表示不进行缓冲,如果为1表示进行行缓冲,如果是一个大于1的数表示缓冲区的大小

input([prompt])

获取用户输入

推荐使用raw_input,因为该函数不会捕获用户输入错误

open(name[, mode[, buffering]])

打开文件

与file有什么不同?推荐使用open

print()打印函数
raw_input([prompt])设置输入,输入都是作为字符串处理
六、其他
help()帮助信息


各个函数的使用,参考

http://blog.csdn.net/oaa608868/article/details/53506188

或者以下这篇文章,每个函数都可以点击。

http://www.runoob.com/python3/python3-built-in-functions.html


all()

判断可迭代对象的每个元素是否都为True值

print(all([0,-5,3]))

执行输出 False


any()

判断可迭代对象的元素是否有为True值的元素

print(any([1,0,3]))

执行输出 True


bin()

将整数转换成二进制字符串

print(bin(8))

执行输出 0b1000 结果是一个二进制


bool()

根据传入的参数的逻辑值创建一个新的布尔值

print(bool(3))

执行输出 True


bytes()

根据传入的参数创建一个新的不可变字节数组

a = bytes("上海",encoding="utf-8")
print(a)

执行输出 b'\xe4\xb8\x8a\xe6\xb5\xb7'


bytearray(),很少用

根据传入的参数创建一个新的字节数组

b = bytearray("abcd",encoding="utf-8")
print(b)

执行输出 bytearray(b'abcd')


callable()

检测对象是否可被调用

def sayhi():pass
print(callable(sayhi))

执行输出 True


chr()

返回整数所对应的Unicode字符

print(chr(97))

执行输出 a


ord()

返回Unicode字符对应的整数

print(ord("b"))

执行输出 b


compile()

将字符串编译为代码或者AST对象,使之能够通过exec语句来执行或者eval进行求值

#流程语句使用exec
code1 = 'for i in range(0,3): print (i)'
compile1 = compile(code1,'','exec')
exec(compile1)

执行输出

0

1

2


#简单求值表达式用eval
code2 = '1 + 2 + 3 + 4'
compile2 = compile(code2,'','eval')
print(eval(compile2))

执行输出 10


dict()

根据传入的参数创建一个新的字典

#不传入任何参数时,返回空字典。
print(dict())

执行输出 {}

#可以传入键值对创建字典。
print(dict(a = 1,b = 2))

执行输出 {'a': 1, 'b': 2}


dir()

返回对象或者当前作用域内的属性列表

a = {}
print(dir(a))

执行输出

['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']


divmod()

返回两个数值的商和余数

print(divmod(5,2))

执行输出 (2, 1)


eval()

将字符串str当成有效的表达式来求值并返回计算结果

print(eval('1+2+3'))

执行输出 6


exec()

执行动态语句块,用来计算复杂的

exec("""for i in range(5):print("iter time: %d" % i)""")

执行输出

iter time: 0

iter time: 1

iter time: 2

iter time: 3

iter time: 4


filter()

使用指定方法过滤可 迭代对象的元素

res = filter(lambda n:n>5,range(10))
for i in res:
    print(i)

执行输出

6

7

8

9


map()

使用指定方法去作用传入的每个可迭代对象的元素,生成新的可迭代对象

res = map(lambda n:n*2,range(5)) #相当于 [i*2 for i in range(5)]
for i in res:
    print(i)

执行输出

0

2

4

6

8


frozenset()

根据传入的参数创建一个新的不可变集合

a = frozenset([1,2,5,7,4,6,2,8])
print(a)

执行输出

frozenset({1, 2, 4, 5, 6, 7, 8})

注意,这个集合,是无法修改的。


globals()

返回当前作用域内的全局变量和其值组成的字典

print(globals())

执行输出

{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__':


hash()

获取对象的哈希值

print(hash("abc"))

执行输出

8374159640907510668


hex()

将整数转换成16进制字符串

print(hex(255))

执行输出 0xff


locals()

返回当前作用域内的局部变量和其值组成的字典

def test():
    local_var = 333
    print(local_var)

test()

执行输出 333


oct()

将整数转化成8进制数字符串

print(oct(8))

执行输出 0o10


pow()

返回两个数值的幂运算值或其与指定整数的模值

print(pow(3,3))

执行输出 27


round()

对浮点数进行四舍五入求值

print(round(3.5))

执行输出 4


sorted()

对可迭代对象进行排序,返回一个新的列表

a = {6:2,8:0,1:4}
#按照key排序
print(sorted(a.items()))
#按照value排序
print(sorted(a.items(),key=lambda x:x[1]))

执行输出

[(1, 4), (6, 2), (8, 0)]

[(8, 0), (6, 2), (1, 4)]


zip()

聚合传入的每个迭代器中相同位置的元素,返回一个新的元组类型迭代器

a = [1,2,3,4]
b = ['a','b','c','d']
for i in zip(a,b):
    print(i)

执行输出

(1, 'a')

(2, 'b')

(3, 'c')

(4, 'd')


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯