王二学习python的笔记以及记录,如有雷同,那也没事,欢迎交流,wx:wyb199594

学习内容

1.内置函数
1. python 数据类型:int bool
数据结构:dic list tuple set str
2. reversed 反转
3. slice 切片
4. format
5. bytes 转换成bytes类型 编码转换用
网络编码 只能用二进制
照片和视频以二进制存储
html网页爬取到的也是编码
6. bytearray bytes未完整字节修改不方便,bytearray类似于列表,修改方便
7. memoryview
8. ord 字符按照unicode转数字
9. chr 数字按照unicode转字符
10. ascii
11. repr (%r格式化输出)让数据原封不动输出
12. dict set
13. frozenset(不可变集合)
14. all 可迭代的 与运算; any 可迭代的 或运算
15. zip 拉链
16. filter 只筛选,不改变值
map 值可能变换,个数不变
17. sorted 排序
2.匿名函数
为实现简单功能,一行写成的函数

代码区

1.关于bytes 代码转换

print('你好')
print(bytes('你好', encoding='GBK')) # unicode 转换成GBK的bytes
print(bytes('你好', encoding='utf-8')) # unicode 转换成utf-8的bytes
print(bytes('你好', encoding='utf-8').decode('utf-8'))

2.filter 过滤非字符串

def is_odd(x):
if type(x) == type('s'):
return x
ret = filter(is_odd, [0,'asd','1 ', '',None,4,5,6,7,8,9])
print(ret)
for i in ret:
print(i)

3.利用filter过滤1-100中开平方为整数的数

from math import sqrt
def func(num):
res = sqrt(num)
return res%1 == 0 def fun(num):
res = sqrt(num)
res_int = int(res)
return res_int == res
ret = filter(fun,range(1,101))
for i in ret:
print(i)

4.,max min filter map sorted  ——lambda 合作

# 求字典值最大值 max+lambda
'''
def func(key):
return dic[key]
dic = {'k1':10,'k2':1000,'k3':120}
print(max(dic,key=func))
print(max(dic,key=lambda k:dic[k]))
''' # 求列表元素的平方 map+lambda
'''
ret = map(lambda x:x**2,[1,3,5,7,9])
print(ret)
for i in ret:
print(i)
''' # 筛选列表中大于10的数
'''
ret = filter(lambda x:x>10,[1,3,4,6,8,4110,1,223,121])
print(ret)
for i in ret:
print(i)
'''

5.员工大礼包

# 我的答案,这个是关键dic = {'id': 0, 'name': 1, 'age': 2, 'tel': 3, 'job': 4, }
'''
def get_line(filename):
with open(filename,encoding='utf-8') as f1:
for line in f1:
line = line.strip()
line_lis = line.split(',')
yield line_lis # 接受用户信息
ret = 'select name,job where tel like 133'
view, condition = ret.split('where')
view = view.replace('select', ' ').strip()
view_list = view.split(',')
print(view_list, condition)
dic = {'id': 0, 'name': 1, 'age': 2, 'tel': 3, 'job': 4, }
def con_filter(condition):
g = get_line('log')
for i in g:
if '>' in condition:
cond_l = condition.split('>')
if int(i[dic[cond_l[0].strip()]]) > int(cond_l[1]):
if view_list[0].strip() == '*':
print(i)
else:
for j in view_list:
print('%s: %s' %(j, i[dic[j.strip()]]), end=',')
print(' ')
elif '<' in condition:
cond_l = condition.split('<')
if int(i[dic[cond_l[0].strip()]]) < int(cond_l[1]):
if view_list[0].strip() == '*':
print(i)
else:
for j in view_list:
print('%s: %s' % (j, i[dic[j.strip()]]), end=',')
print(' ')
elif '=' in condition:
cond_l = condition.split('=')
if int(i[dic[cond_l[0].strip()]]) == int(cond_l[1]):
if view_list[0].strip() == '*':
print(i)
else:
for j in view_list:
print('%s: %s' % (j, i[dic[j.strip()]]), end=',')
print(' ')
elif 'like' in condition:
cond_l = condition.split('like')
if cond_l[1].strip() in i[dic[cond_l[0].strip()]]:
if view_list[0].strip() == '*':
print(i)
else:
view_list.append('tel')
for j in view_list:
print('%s: %s' % (j, i[dic[j.strip()]]), end=',')
# print('tel:%s'%i[dic['tel']], end=',')
print(' ')
con_filter(condition)
'''
# 老师答案,做到解耦,分步操作,注释
'''
# 接收用户信息——分析信息
ret = 'select name,job, age where tel like 133'
view, condition = ret.split('where')
view = view.replace('select', ' ').strip()
view_list = view.split(',')
condition = condition.strip()
print(view_list, condition)
# 对照表
dic = {'id': 0, 'name': 1, 'age': 2, 'tel': 3, 'job': 4, }
# 读取文件——将文件信息整理到内存
def get_line(filename):
with open(filename, encoding='utf-8') as f1:
for line in f1:
line = line.strip()
line_list = line.split(',')
yield line_list
# 筛选员工——根据信息筛选内存中提取的信息
def condition_filter(condition):
g = get_line('log')
for line_list in g:
if '>' in condition:
col, val = condition.split('>')
if int(line_list[dic[col]]) > int(val):
yield line_list
elif '<' in condition:
col, val = condition.split('<')
if int(line_list[dic[col]]) < int(val):
yield line_list
elif '=' in condition:
col, val = condition.split('=')
if int(line_list[dic[col]]) == int(val):
yield line_list
elif 'like' in condition:
col, val = condition.split('like')
col = col.strip()
val = val.strip()
if val in line_list[dic[col]]:
yield line_list
# 显示——根据筛选结果,显示需要的信息
def viewer(view_list, staff_g):
for staff_info in staff_g:
for i in view_list:
print('%s:%s' % (i.strip(), staff_info[dic[i.strip()]]), end=',')
print(' ') g = condition_filter(condition)
viewer(view_list, g)
'''

python之路——16的更多相关文章

  1. 【python之路16】作业

    #!usr/bin/env python # -*- coding:utf-8 -*- # 数据库中原有 old_dict = { "#1": {'hostname': 'c1', ...

  2. 【python之路16】lambda表达式

    1.lambda表达式,实际是建立一个简易的函数 下面代码中f1和f2表示是相同过程的代码 def f1(args): return args f2 = lambda args:args print( ...

  3. python之路 目录

    目录 python python_基础总结1 python由来 字符编码 注释 pyc文件 python变量 导入模块 获取用户输入 流程控制if while python 基础2 编码转换 pych ...

  4. Python之路【第十九篇】:爬虫

    Python之路[第十九篇]:爬虫   网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用 ...

  5. Python之路【第十八篇】:Web框架们

    Python之路[第十八篇]:Web框架们   Python的WEB框架 Bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Pytho ...

  6. Python之路【第十七篇】:Django【进阶篇 】

    Python之路[第十七篇]:Django[进阶篇 ]   Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接 ...

  7. Python之路【第十六篇】:Django【基础篇】

    Python之路[第十六篇]:Django[基础篇]   Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了O ...

  8. Python之路【第十五篇】:Web框架

    Python之路[第十五篇]:Web框架   Web框架本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. 1 2 3 4 5 6 ...

  9. Python之路【第九篇】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

    Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy   Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用 ...

随机推荐

  1. SSH免密码登录教程

    在一些受信任的环境中配置免密码登录,是比较方便的:而对于ansible等自动化工具配置免密码登录更是必要的. 免密码登录的要点就是,把想让服务器信任的客户机的公钥发送到服务器. 当客户机连接服务器时直 ...

  2. Mac系统下安装PyCharm

    首先,进入 PyCharm 的官网,https://www.jetbrains.com/pycharm/ 有macOS.Windows.Linux三个系统的自由选择,这里我们选macOS,然后down ...

  3. configure、make 和 make install 的区别

    Linux编译安装中configure.make和make install各自的作用 ./configure是用来检测你的安装平台的目标特征的.比如它会检测你是不是有CC或GCC,并不是需要CC或GC ...

  4. caffe drawnet.py 用Python画网络框架

    在caffe中可以使用draw_net.py轻松地绘制卷积神经网络(CNN,Convolutional Neural Networks)的架构图.这个工具对于我们理解.学习甚至查错都有很大的帮助. 1 ...

  5. tensoFlow之DNN文本分类

    TensorFlow文本分类: 亲测可用:https://blog.csdn.net/u012052268/article/details/77862202 简单实例:https://www.leip ...

  6. Centos7修改分区空间

    一:缩小/home空间 1.1:备份/home内容 cp -r /home/* /homebak 1.2:删除挂载/home umount /home 1.3:删除/home所在lv lvremove ...

  7. 0913_Python初识及变量

    1.Python3不需加utf-8,Python必须加utf-82.单行注释用#,多行注释用""" """3.变量:只能由字母.数字.下划线 ...

  8. 详解Makefile 函数的语法与使用 (转)

    使用函数: 在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能.make所支持的函数也不算很多,不过已经足够我们的操作了.函数调用后,函数的返回值可以当做变量来使 ...

  9. hdu4612 Warm up 缩点+树的直径

    题意抽象后为:给定一个无向图 问添加一条边的情况下最少能有多少个桥. 桥的定义:删除该边后原图变为多个连通块. 数据规模:点数N(2<=N<=200000),边数M(1<=M< ...

  10. Vue遇到的问题

      1.<a v-bind:[attributeName]="url"> ... </a> 报错,原因 attributeName应该属于关键字,不能用 2 ...