python之路——19
王二学习python的笔记以及记录,如有雷同,那也没事,欢迎交流,wx:wyb199594
复习
1.正则表达式
1.字符组
2.元字符
\w \d \s 匹配任意字母数字下划线 数字 空格
\W \D \S 匹配非...............................
. 匹配除了换行符的任意字符
\n \t 匹配换行符 table
^ $ 匹配开始和结束
\b 匹配单词结尾
() 分组 对多个字符组整体量词约束
python 分组优先 findall
| 从左到右匹配,匹配上就不继续匹配
[^] 不匹配[]
3.量词
* 匹配0~
+ 匹配1~
? 匹配0~1
{n} 匹配n
{n,} 匹配n~
{n,m} 匹配n~m
4.转义问题
re.findall(r'\\s', r '\s') 遇到特殊字符,想匹配,用r转义
5.惰性匹配
量词后加?
.*?x 一直匹配,遇到x停
2.re模块
findall
返回列表,所有匹配到的项
search
匹配到第一个就返回一个对象,遇不到返回None,
match
从头开始匹配,匹配到第一个就返回
split
分割
sub subn
替换
finditer
返回迭代器
compile
编译
学习内容
1.collections 模块
1.namedtuple
2.队列 先进先出
2.time 模块
3.random 模块
4.os 模块
5.sys模块
代码区
1.正则匹配算式中的整数
import re
ret=re.findall("\d+\.\d+|(\d+)", "1-2*(60+(-40.35/5)-(-4*3))")
print(ret)
2.collection模块
# collections 模块
"""
# 可命名元祖
'''
from collections import namedtuple
Point = namedtuple('point', ['x', 'y'])
p1 = Point(1, 2)
print(p1)
# 扑克牌
Card = namedtuple('card',['suit', 'number'])
c1 = Card('Heart', 2)
print(c1)
'''
# 队列
'''
import queue
q1 = queue.Queue()
q1.put([101,1,0])
q1.put(5)
q1.put(0)
print(q1.qsize())
print(q1.get())
print(q1.qsize())
print(q1.get())
print(q1.get())
print(q1.get()) # 阻塞
'''
# 双端队列
'''
from collections import deque
q1 = deque([1, 2])
q1.append('a') # 后面放
q1.appendleft('b') # 前面放
print(q1.pop()) # 后面去
print(q1.popleft()) # 前面取
'''
# 有序字典
'''
from collections import OrderedDict
dic1 = OrderedDict([('a', 1), ('b', 2), ('c', 3)])
dic2 = dict([('a', 1), ('b', 2), ('c', 3)])
print(dic1)
print(dic2)
print(dic1['a'])
'''
#默认值字典
'''
from collections import defaultdict
dic1 = defaultdict(lambda : 5)
print(dic1['k1'])
'''
"""
3.time模块,程序:计算时间差
import time
'''
# time.sleep(1)
# 时间戳
print(time.time())
# 格式化时间
print(time.strftime("%Y-%m-%d %a %j %W %H:%M:%S"))
# 结构化时间
struct_time = time.localtime()
print(struct_time)
''' # t = time.time()
# print(t)
# print(time.localtime(1600000000))
# print(time.gmtime(t)) # print(time.strptime('2018-1-31','%Y-%m-%d'))
# print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))) # 计算时间差
'''
start_time = time.mktime(time.strptime('2017-09-11 08:30:00','%Y-%m-%d %H:%M:%S'))
end_time = time.mktime(time.strptime('2017-09-12 11:00:00','%Y-%m-%d %H:%M:%S'))
dif_time = end_time - start_time
struct_dif_time = time.gmtime(dif_time)
print('过去了%d年%d月%d日%d小时%d分钟%d秒'%(struct_dif_time.tm_year-1970,struct_dif_time.tm_mon-1,
struct_dif_time.tm_mday-1,struct_dif_time.tm_hour,struct_dif_time.tm_min,
struct_dif_time.tm_sec))
'''
4.random 模块 程序:验证码
'''
import random
code = random.sample(['1','2','3','4','5','6','7','8','9','0','a','b','c','A','B','D','C'],4)
print(code[0]+code[1]+code[2]+code[3])
'''
# 高级一点
'''
import random
def get_random():
num = str(random.randint(0, 9))
lit = random.randint(65, 90)
Lit = random.randint(97, 122)
lit_r = random.choice([lit, Lit])
return random.choice([chr(lit_r), num]) code = ''
for i in range(4):
code = ''.join([code, get_random()]) print(code)
'''
# 老师答案
'''
import random def v_code(): code = ''
for i in range(5): num=random.randint(0,9)
alf=chr(random.randint(65,90))
add=random.choice([num,alf])
code="".join([code,str(add)]) return code print(v_code())
'''
5.os模块和sys模块
'''
import os
print(os.getcwd())
# os.makedirs('dirname1/dirname2')
# os.makedirs('dirname1/dirname3')
# os.removedirs('dirname1/dirname2')
# os.mkdir('dirname')
# os.rmdir('dirname')
print(os.listdir(r'D:\python'))
print(os.stat(r'D:\python/Day19'))
'''
# sys 模块
import sys
print(sys.platform)
print(sys.version)
python之路——19的更多相关文章
- 【python之路19】文件操作
一.打开文件 文件句柄 = open('文件路径', '模式') 打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作. 打开文件的模式有: r ...
- 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 是一个高性能的分布式内存对象缓存系统,用 ...
- Python之路【第八篇】:堡垒机实例以及数据库操作
Python之路[第八篇]:堡垒机实例以及数据库操作 堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 SSHClient ...
- Python之路【第七篇】:线程、进程和协程
Python之路[第七篇]:线程.进程和协程 Python线程 Threading用于提供线程相关的操作,线程是应用程序中工作的最小单元. 1 2 3 4 5 6 7 8 9 10 11 12 1 ...
随机推荐
- pycharm安装pip报错的处理办法
这几天在用pycharm的时候,发现安装软件的时候报 module 'pip' has no attribute 'main' ,后来综合网上的办法以及分析错误提示,原因是在于pycharm安装目录下 ...
- 基于CBOW网络手动实现面向中文语料的word2vec
最近在工作之余学习NLP相关的知识,对word2vec的原理进行了研究.在本篇文章中,尝试使用TensorFlow自行构建.训练出一个word2vec模型,以强化学习效果,加深理解. 一.背景知识: ...
- C#入门基本概念
一.版本号的命名规则 大部分时候是在名字后面加些数字表示不同的版本.其中以加上年份号最为简单明了.比如 Visual Studio 2008.但是大部分人还是不用这个方式.因为年份号中没有带来跟多的信 ...
- leftBarButtonItem 的颜色
修改系统:leftBarButtonItem, rightBarButtonItem 的颜色 在你需要修改的页面,ViewDidload()方法里面贴上下面代码 self.navigationCont ...
- C#创建、读写、增加、删除XML操作
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...
- syslog日志打印
最近syslog出了一次问题,我们配置了不同appname打印到不同文件.现在用不同appname打印log的时候,偶然会混在一起.检查过配置后,觉得不是配置问题,如果是配置问题应该每一条都会打错位置 ...
- Arcgis API for JS——普通分屏联动及二三维联动
对于二三维联动,有多种方法进行实现,当时旧项目使用了当时能掌握的一种写法,在技能提升了这么多后当然要对这些写法做一个总结. 一.通过监听View上的鼠标事件变化来进行分屏联动(同一坐标系) (同理可以 ...
- STL——string
C++之string类型详解 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够.字符串长度等等,而且作为一个泛型类出现,他集成的操作函 ...
- 小括号转义 '\\s'
select split("2405F5 (base 16) Integrated Device Technology (Malaysia) Sdn. Bhd.","\\ ...
- [C]排序并插入
/* 编写程序,在主函数中定义一个有10个元素的整型一维数组,用户输入9个数据,调用函数,对数组元素进行从小到大排序后,在函数中输入一个数,插入到数组中正确的位置,并输出. */ #include&l ...