python之路——16
王二学习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的更多相关文章
- 【python之路16】作业
#!usr/bin/env python # -*- coding:utf-8 -*- # 数据库中原有 old_dict = { "#1": {'hostname': 'c1', ...
- 【python之路16】lambda表达式
1.lambda表达式,实际是建立一个简易的函数 下面代码中f1和f2表示是相同过程的代码 def f1(args): return args f2 = lambda args:args print( ...
- python之路 目录
目录 python python_基础总结1 python由来 字符编码 注释 pyc文件 python变量 导入模块 获取用户输入 流程控制if while python 基础2 编码转换 pych ...
- Python之路【第十九篇】:爬虫
Python之路[第十九篇]:爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用 ...
- Python之路【第十八篇】:Web框架们
Python之路[第十八篇]:Web框架们 Python的WEB框架 Bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Pytho ...
- Python之路【第十七篇】:Django【进阶篇 】
Python之路[第十七篇]:Django[进阶篇 ] Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接 ...
- Python之路【第十六篇】:Django【基础篇】
Python之路[第十六篇]:Django[基础篇] Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了O ...
- Python之路【第十五篇】:Web框架
Python之路[第十五篇]:Web框架 Web框架本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. 1 2 3 4 5 6 ...
- Python之路【第九篇】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用 ...
随机推荐
- PAT 1065 A+B and C (64bit)
1065 A+B and C (64bit) (20 分) Given three integers A, B and C in [−], you are supposed to tell whe ...
- RabittMQ安装和Erlang安装教程
安装Erlang 官方安装地址文档: http://www.rabbitmq.com/install-rpm.html 根据官网的推荐 进入到专为RabbitMQ整理的极简版Erlang https: ...
- 常用 blas 函数
Y=alpha * X +beta*Y template <> void caffe_cpu_axpby<float>(const int N, const float alp ...
- 短信猫+kannel调试一例
同事做一短信网关平台,采用kannel软件. 安装正常,配置文件如下: # Vodafone 3G cardgroup = coreadmin-port = 13000admin-password = ...
- leetcode python 010
#实现正则表达式匹配并支持'.'和'*'.#''匹配任何单个字符.#'*'匹配前面元素的零个或多个.#匹配应覆盖整个输入字符串(非部分).##Some examples:##isMatch(" ...
- Ubuntu16.04 安装 MySQL
本篇介绍如何在Ubuntu系统上安装MySQL数据库,以及介绍数据库的基本命令. 一.下载和安装MySQL 可以通过apt-get下载并安装 sudo apt-get install mysql-se ...
- IC卡T0协议中的过程字与状态字
T0协议中,IC卡收到命里头以后向TTL回传过程字或状态字SW1.SW2: TTL和IC卡在二者之间的命令和数据交换的任何时刻都必须知道数据流的方向和IO线路由谁驱动. 摘录参考:<中国金融集成 ...
- SQL Analytic Functions 分析函数
应用场景 主要使用在需要分组计算的场景中,根据所需的计算值可以分为两类: 1,排序类:如排序号,相邻记录等 2,聚合类:如平均值,累加求和,最大值,最末值等 语法 分析函数的语法在各大数据库中基本类似 ...
- Python全栈之路----函数进阶----闭包
关于闭包,即函数定义和函数表达式位于另一个函数的函数体内(嵌套函数).而且,这些内部函数可以访问它们所在的外部函数中声明的所有局部变量.参数.当其中一个这样的内部函数在包含它们之外被调用时,就会形成闭 ...
- 服务器-华为RH5885 V3-安装Windows Server 2008R2后设备管理器中存在大量的感叹号,并且无法识别网络适配器,没有网卡
问题描述:用引导盘安装Windows Server 2008R2后,出现如题的情况. 根源:驱动未安装. 解决方法: 1.下载驱动:https://support.huawei.com/enterpr ...