Python学习----第二模块笔记
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习----第二模块笔记相关的知识,希望对你有一定的参考价值。
1、匿名函数
没有函数名的函数,使用lambda来创建。e.g:
>>> a = lambda x:x*3 >>> a(3) 9 >>> a = lambda n:print(n) >>> a("aaa") aaa a = map(lambda x: x*2, range(5)) for i in a: print(i) 结果: 0 2 4 6 8 #匿名函数与其他函数搭配使用
2、内置函数
abs():返回数字的绝对值
all():判断给定的可迭代对象 iterable 中的所有元素是否不为 0、‘‘、False 或者 iterable 为空,如果是返回 True,否则返回 False,e.g:
>>> all([]) True #空列表 >>> all([0,1,2,3]) False #0为False >>> all([1,2,"",4]) False #空元素 >>> all([1,2,3,4]) True
any():判断给定的可迭代对象 iterable 是否全部为空对象,如果都为空、0、false,则返回 False,如果不都为空、0、false,则返回 True,注意与all()的区别,e.g:
>>> any([]) False #空列表 >>> any([0,1,2,3]) True #一个为真即为真 >>> any([1,2,"",4]) True >>> any([1,2,3,4]) True
ascii():类似 repr() 函数, 返回一个表示对象的字符串, 但是对于字符串中的非 ASCII 字符则返回\\x, \\u 或 \\U 编码的字符,e.g:
>>> a = [1,2,3] >>> ascii(a) ‘[1, 2, 3]‘
bin():返回一个整数的二进制,e.g:
>>> bin(10) ‘0b1010‘
bool():将给定参数转换为布尔类型,如果没有参数,返回 False,e.g:
>>> bool(0) False >>> bool(1) True
bytearray():返回一个新字节数组。这个数组里的元素是可变的,并且每个元素的值范围: 0 <= x < 256,
- 如果传入参数为整数,则返回一个长度为 source 的初始化数组;
- 如果传入参数为字符串,则按照指定的 encoding 将字符串转换为字节序列;
- 如果传入参数为可迭代类型,则元素必须为[0 ,255] 中的整数;
- 如果传入参数为与 buffer 接口一致的对象,则此对象也可以被用于初始化 bytearray;
- 如果没有输入任何参数,默认就是初始化数组为0个元素。
e.g:
>>> bytearray() bytearray(b‘‘) >>> bytearray([1,2,3]) bytearray(b‘\\x01\\x02\\x03‘) >>> bytearray(‘a‘, ‘utf-8‘) bytearray(b‘a‘)
bytes():返回一个新的 bytes 对象,该对象是一个 0 <= x < 256 区间内的整数不可变序列。它是 bytearray 的不可变版本,e.g:
>>> bytes() b‘‘ >>> bytes([1,2,3]) b‘\\x01\\x02\\x03‘ >>> bytes(‘a‘,‘utf-8‘) b‘a‘
callable():检查一个对象是否是可调用,e.g:
>>> callable(1) False >>> def hello(): ... pass ... >>> callable(hello) True
chr():返回当前整数对应的ascii字符,e.g:
classmethod:类相关函数,未学
compile():将一个字符串编译为字节代码,语法如下:
compile(source, filename, mode[, flags[, dont_inherit]]) # source -- 字符串或者AST(Abstract Syntax Trees)对象 # filename -- 代码文件名称,如果不是从文件读取代码则传递一些可辨认的值 # mode -- 指定编译代码的种类。可以指定为 exec, eval, single # flags -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象 # flags和dont_inherit是用来控制编译源码时的标志
e.g:
>>>str = "for i in range(0,5): print(i)" >>> c = compile(str,‘‘,‘exec‘) >>> c <code object <module> at 0x10141e0b0, file "", line 1> >>> exec(c) 0 1 2 3 4
complex():创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数。如果第一个参数为字符串,则不需要指定第二个参数
delattr():用于删除属性,delattr(x,‘name‘) = del x.name
dict():用于创建一个字典,e.g:
>>> dict(a=1,b=2,c=3) {‘a‘: 1, ‘b‘: 2, ‘c‘: 3} >>> dict(a=‘a‘,b=‘b‘) {‘a‘: ‘a‘, ‘b‘: ‘b‘}
dir():不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息,e.g:
>>> dir([]) [‘__add__‘, ‘__class__‘, ‘__contains__‘, ‘__delattr__‘, ‘__delitem__‘, ‘__dir__‘, ‘__doc__‘, ‘__eq__‘, ‘__format__‘, ‘__ge__‘, ‘__getattribute__‘, ‘__getitem__‘, ‘__gt__‘, ‘__hash__‘, ‘__iadd__‘, ‘__imul__‘, ‘__init__‘, ‘__init_subclass__‘, ‘__iter__‘, ‘__le__‘, ‘__len__‘, ‘__lt__‘, ‘__mul__‘, ‘__ne__‘, ‘__new__‘, ‘__reduce__‘, ‘__reduce_ex__‘, ‘__repr__‘, ‘__reversed__‘, ‘__rmul__‘, ‘__setattr__‘, ‘__setitem__‘, ‘__sizeof__‘, ‘__str__‘, ‘__subclasshook__‘, ‘append‘, ‘clear‘, ‘copy‘, ‘count‘, ‘extend‘, ‘index‘, ‘insert‘, ‘pop‘, ‘remove‘, ‘reverse‘, ‘sort‘]
divmod():把除数和余数运算结果结合起来,返回一个包含商和余数的元组,e.g:
>>> divmod(10,3)
(3, 1)
enumerate():用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中,e.g:
>>> for i in enumerate([‘a‘,‘b‘,‘c‘]): ... print(i) ... (0, ‘a‘) (1, ‘b‘) (2, ‘c‘)
eval():用来执行一个字符串表达式,并返回表达式的值,e.g:
>>> eval(‘1+2‘) 3 >>> eval(‘[1,2,3]‘) [1, 2, 3]
exec():执行储存在字符串或文件中的 Python 语句,相比于 eval,exec可以执行更复杂的 Python 代码,e.g:
>>> exec(‘for i in range(3):print(i)‘) 0 1 2
filter():用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。该函数接收两个参数,第一个为函数,第二个为可迭代对象,可迭代对象的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中,e.g:
def is_odd(n): return n % 2 == 1 for i in filter(is_odd, range(10)): print(i) 结果: 1 3 5 7 9
float():用于将整数和字符串转换成浮点数
format():用于字符串的格式化输出,e.g:
name = "Python" age = 28 print("{}的年龄为{}".format(name, age)) 结果: Python的年龄为28
frozenset():返回一个冻结的集合,冻结后集合不能再添加或删除任何元素
getattr():用于返回一个对象属性值
getattr(object, name[, default]) #object -- 对象 #name -- 字符串,对象属性 #default -- 默认返回值,如果不提供该参数,在没有对应属性时,将触发 AttributeError
globals():以字典类型返回当前位置的全部全局变量
hasattr():用于判断对象是否包含对应的属性,e.g:
>>> hasattr([],‘append‘) True >>> hasattr([],‘isdigit‘) False
hash():获取取一个对象(字符串或者数值等)的哈希值,e.g:
>>> hash(‘a‘) 7807180544025395620
help():用于查看函数或模块用途的详细说明
hex():用于将10进制整数转换成16进制整数,e.g:
>>> hex(10) ‘0xa‘
id():用于获取对象的内存地址
input():用于获取控制台输入
int():将字符串数字转换为整型
isinstance():判断一个对象是否是一个已知的类型,e.g:
>>> isinstance(a,int) True >>> isinstance(a,str) False >>> isinstance(a,(int,str,list)) True #是元组中的一个是返回True
issubclass():用于判断是否是子类
iter():用于生成迭代器
len():返回对象(字符、列表、元组等)长度或项目个数
list():将元组转换为列表
locals():以字典类型返回当前位置的全部局部变量
map():根据提供的函数对指定序列做映射,e.g:
>>> a = map(lambda x:x*2,range(5)) >>> for i in a: ... print(i) ... 0 2 4 6 8
max():返回给定参数的最大值
memoryview():返回给定参数的内存查看对象(Momory view)。所谓内存查看对象,是指对支持缓冲区协议的数据进行包装,在不需要复制对象基础上允许Python代码访问
min():返回给定参数的最小值
next():返回可迭代对象的下一个值
oct():将一个整数转换成八进制
open():打开文件
ord():chr()函数的反函数
pow():返回 xy(x的y次方) 的值,e.g:
>>> pow(1,2)
1
print():打印输出
property() :在新式类中返回属性值
range():创建整数列表
repr():将对象转化为供解释器读取的字符串形式,e.g:
>>> a = {‘a‘:1,‘b‘:2} >>> repr(a) "{‘a‘: 1, ‘b‘: 2}"
reversed():反转可迭代对象,e.g:
>>> a = [1,2,3] >>> list(reversed(a)) [3, 2, 1]
round():返回浮点数的四舍五入值
set():创建一个集合
setattr():对应函数getatt()用于设置属性值,该属性必须存在
slice():实现切片对象,主要用在切片操作函数里的参数传递,e.g:
>>> a = [1,2,3,4,5] >>> myslice = slice(2) >>> a[myslice] [1, 2]
sorted():对可迭代对象排序
staticmethod():返回函数的静态方法
str():将对象转换成始于人阅读的字符串形式
sum():对可迭代对象求和,e.g:
>>> sum([1,2,3])
6
super():函数用于调用下一个父类(超类)并返回该父类实例的方法。super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。MRO 就是类的方法解析顺序表, 其实也就是继承父类方法时的顺序表
tuple():将列表转换成元组
type():返回对象的数据类型,e.g:
>>> type(1) <class ‘int‘> >>> type(‘1‘) <class ‘str‘>
vars():返回对象的属性和属性值的字典对象
zip():用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表,e.g:
>>> a = [1,2,3] >>> b = [4,5,6] >>> list(zip(a,b)) [(1, 4), (2, 5), (3, 6)]
以上是关于Python学习----第二模块笔记的主要内容,如果未能解决你的问题,请参考以下文章