一、基础数据类型
数值(int、float)
序列(list、str、tuple)
散列(set、dict)
可迭代对象(序列、散列)
二、命名元组
from collections import namedtuple student = namedtuple('Students', ('name', 'age', 'skill')) stu = student('幂次方', 18, 'python自动化') stu[1] ==stu.age 判断是否是该数据类型:print(isinstance(stu, tuple))
三、推导式
三目运算:
res = True if 条件 else False
if number > 60: print("大于") else: print('小于')
res = True if number > 60 else False
列表推导式:
需求,生成 [py1,,,,,py20]
li = [] for i in range(1,21): li.append('py{}'.format(i))
li = ['py{}'.format(i) for i in range(1,21)]
集合推导式:
se = {'py{}'.format(i) for i in range(1,21)}
字典推导式:
dic = {'name{}'.format(i): i * 100 for i in range(1, 21)}
可迭代对象和迭代器:
可迭代对象:能够使用for遍历的数据都是可迭代对象
迭代对象内部实现了迭代协议(这个对象拥有__iter__这个方法)
迭代器:迭代器也是可迭代对象的一种
迭代器: 不仅仅实现了__iter__这个方法,还实现了__next__方法
迭代对象转换为迭代器:迭代器 = iter(可迭代对象)
迭代器:可以使用内置函数next进行迭代
li = [11, 22, 33, 44] li_tor = iter(li) # next函数 print(next(li_tor)) print(next(li_tor))
注意点:当使用next获取完迭代器中所有的元素之后,再次使用next进行迭代,会抛出迭代器停止的异常
生成器(相当于元组推导式)(特殊的迭代器):
创建生成器的两种方式
生成器表达式:tu = (i for i in range(10)) 生成器函数:只要函数中使用了yield这个关键字,那么这个函数就是一个生成器函数 def gen(): for i in range(10): yield {'a':i}
三种方法:
生成器的send方法:生成器的send方法可以和生成器内部进行数据交互、调用send方法执行要执行一次next
close:关闭生成器 g.close()
throw:往生成器内部发送一个异常 、主动发送一个异常到生成器中