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(ba)

bytes():返回一个新的 bytes 对象,该对象是一个 0 <= x < 256 区间内的整数不可变序列。它是 bytearray 的不可变版本,e.g:

>>> bytes()
b‘‘
>>> bytes([1,2,3])
b\\x01\\x02\\x03
>>> bytes(a,utf-8)
ba

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)]
__import__():用于动态加载类和函数 。如果一个模块经常变化就可以使用 __import__() 来动态载入

以上是关于Python学习----第二模块笔记的主要内容,如果未能解决你的问题,请参考以下文章

Python 3.5学习笔记(第二周)

《HeadFirst Python》第二章学习笔记

《HeadFirst Python》第二章学习笔记

python基础学习笔记(十三)

Python基础学习笔记

head first python菜鸟学习笔记(第四章)