# 数据结构:dict list tuple set str
# 数据类型:int tuple dict bool
reversed()
l=[1,2,3,4,5,6]
l.list.reverse()
print(l)
l2=reversed(l) #返回翻转迭代器 不改变原来的列表 保留原列表 返回一个反向的迭代器
#slice切片
l=(1,2,23,213,5612,342,43)
sli=slice(1,5,2)#切片规则
print(l[sli]) == print(l[1:5:2])
#format() str.format
print(format('test','<20'))
print(format('test','>20'))
#bytes转换成bytes
#拿到gbk编码 转成utf-8 :先 decode 后encode
print(bytes('你好',encoding='GBK').decode('GBK'))#"xc3"unicode gbk
print(bytes('你好',encoding='utf-8').decode('utf-8'))#"xbd"unicode utf-8
#文件gbk decode读到内存转成unicode 转成bytes utf-8
#网络编程 只能传二进制
#照片和视频以二进制存储
#html网页爬取到的也是编码
# bytearray
b_array=bytearray('你好',encoding='utf-8')
print(b_array)
print(b_array[0])
s1='alexa'
s2='alex'
#memoryview 字节类型切片不占内存 转换成字符串占内存
#字符按照unicode转换成数字 ord
print(ord('a'))
# 数字按照unicode转换成字符 chr
#字符串格式化
name='eggg'
print('你好%s'%name)#%s str()
print('你好%r'%name)#%r repr()
repr('1')#'1'
repr(1)#1
#内置函数
# all有一个为false即为false
print(all['a','',123])
print(all['a',123])
print(all[0,123])
#any
l=[1,2,3]
l2=['a','b','c']
print(zip(l,l2))#内存地址迭代器
for i in zip(l,l2):
print i
#(1,'a') (2,‘b') (3,'c')
def is_odd(x):
return x%2==1
ret=filter(is_odd,[1,4,6,7,9.12,17])
[i for i in [1,4,6,7,9.12,17] if i %2 ==1]
def is_str(s):
if type(s)==strs:
return True
return types(s)==strs
#删除空字符串
def is_str(s):
if type(s)!=int:
return s and str(s).strip()
ret=filter(is_str,[1,'hello','',' ',None,[].6,7,'world',12,17])
from math import sqrt
print(sqrt(64))
def func(num):
res=sqrt(num)
return res %1==0 #转换整数
filter(func,range(1,101))
for i in ret:
print (i)
ret=map(abs,[1,-4,6,-8])
for i in ret:
print (i)
#fileter执行个数改变只管筛选不改变原来的值 map改变值元素个数不变、
l=[12,4,5,-6]
l.sort(key=abs)#在原列表的基础上进行排序
print (l)
sorted(l)#直接生成一个新列表 列表不大占内存
print(sorted(l,key=abs,reversed=True))
#思维导图
#员工信息表:完善代码 背下来
dic={'name':1,'id':0,'age':2,'phone':3,'job':4}
def get_line(filename):
with open(filename,encoding='utf-8') as f:
for line in f:
line=line.strip()
line_lst=line.split(',')
#print(lst)
yield line_lst
def condition_filter(condition):
'''条件筛选'''
condition=codition.strip()
if '>' in condition:
col,val=condition.split('>')
print(col,val)
g=get_line('useinfo')
for line_lst in g:
if int(line_lst[dic[col]]) > int(val):
print(line_lst)
yield line_lst
def views(view_lst,staff_g):
'''展示符合条件的值'''
if '*'in view_lst:
view_lst=dic.keys()
for staff_info in staff_g:
print('*',staff_info)
print (staff_info[1],staff_info[2])
info=[]
for i in view_lst:
print(staff_info[1],end='')
print(' ')
#print(info.append(staff_info[dic[i]]))
#接收用户的信息 分析信息
# 读取文件 将文件中内容整理到内存
def get_line(filename):
with open(filename,encoding='utf-8') as f:
for line in f:
line=line.strip()
line_lst=line.split(',')
#print(lst)
yield line_lst
get_line('userinfo')
# 接受用户信息分析信息
ret= input('>>>')
ret ='select name ,age where age>32'
view,codition=ret.split('where')
print(view,codition)
print(view.split('select').pop[0])
print(view.replace('select','').strip())
view=view.replace('select','').strip()
view_lst=view.split(',')
print(view_lst,codition)
condition_filter(condition)