Python大神成长之路: 第三次学习记录 集合 函数 装饰 re
fp = open() #文件句柄,文件句柄里存的内容: 文件信息、在磁盘上的开始位置、内存等
fp.tell() 查看当前位置
fp.seek(30) 跳到30
for line in fp:
print(line) ###可以直接这样。。
for i in range(50):
sys.stdout.write("#")
sys.stdout.flush()
time.sleep(0.1)
for line in fp:
if "helooxxx" in line:
line = line.replace()
fp2.write(line)
#-*-encoding:utf8 -*-
s= "你好"
s.decode("utf-8"):Utf8转到unicode
s.encode("gbk") unicode 转到 gbk
ef f(x, *args):
#tuple
print args
f(1,2,3,"h","a")
f([1,2,3])
f(*[8,3,"b"])
def f4(**kwargs):
#Dictionary: 把N个关键字转换为字典方式
print(kwargs) f4(name="Alex", age=8, sex="N")
list_1 = [1,6,5,4]
list_1 = set(list_1)
list_2 = set([8,9,5,10,1])
print (list_1, list_2)
print(list_1.intersection(list_2)) #交集
print(list_1.union(list_2)) #并集
#in list_1 but not in list_2
print(list_1.difference(list_2)) #差集, list_1里有但2里没有
list_3 = set([1,6])
print(list_1.issubset(list_3)) #子集
print(list_1.issuperset(list_3)) #父集
##对称差集,去掉交集后
print(list_1.symmetric_difference(list_2))
print("-----")
list_4 = set([90])
print(list_1.isdisjoint(list_4)) #是否没有交集 ####集合运算2#:
print(list_1,list_2)
print(list_1 | list_2) #并集
print(list_1 & list_2) #交集
print(list_1 - list_2) #差集
print(list_1 ^ list_2) #对称差集 list_1.add('x')
list_1.update(["a","b","c","x"]) print(list_1)
print ("a" in list_1)
def foo():
print('in the foo')
def bar():
print('in the bar') 高阶函数 + 嵌套函数 ---> 装饰器
@auth #index = auth(index)
def index() 生成器:
#列表生成式
b=[i*2 for i in range(1000000)] ##会生成列表,速度慢
b=(i*2 for i in range(10000000)) ##瞬间完成,并不会真的生成列表,在取值的时候才会生成
生成器:只有在调用时才会生成相应的数据。只记住当前位置。只有一个__next__(),python2.7:next() b.__next__()
next(b)
def fib(max):
n, a, b = 0, 0 ,1
while n < max:
#print(b)#
yield b ###生成器
a, b = b, a+b
n +=1
return "--------------------done"
re.sub() 替换
re.match()
re.find() final
re.search()
'.' 默认匹配除\n之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行 '^' 匹配字符开头,若指定flags MULTILINE,这种也可以匹配上(r"^a","\nabc\neee",flags=re.MULTILINE) '$' 匹配字符结尾,或e.search("foo$","bfoo\nsdfsf",flags=re.MULTILINE).group()也可以 '*' 匹配*号前的字符0次或多次,re.findall("ab*","cabb3abcbbac") 结果为['abb', 'ab', 'a'] '+' 匹配前一个字符1次或多次,re.findall("ab+","ab+cd+abb+bba") 结果['ab', 'abb'] '?' 匹配前一个字符1次或0次 '{m}' 匹配前一个字符m次 '{n,m}' 匹配前一个字符n到m次,re.findall("ab{1,3}","abb abc abbcbbb") 结果'abb', 'ab', 'abb'] '|' 匹配|左或|右的字符,re.search("abc|ABC","ABCBabcCD").group() 结果'ABC' '(...)' 分组匹配,re.search("(abc){2}a(123|456)c", "abcabca456c").group() 结果 abcabca456c '\A' 只从字符开头匹配,re.search("\Aabc","alexabc") 是匹配不到的 '\Z' 匹配字符结尾,同$ '\d' 匹配数字0-9 '\D' 匹配非数字 '\w' 匹配[A-Za-z0-9] '\W' 匹配非[A-Za-z0-9] 's' 匹配空白字符、\t、\n、\r , re.search("\s+","ab\tc1\n3").group() 结果 '\t' '(?P<name>...)' 分组匹配 re.search("(?P<province>[0-9]{4})(?P<city>[0-9]{2})(?P<birthday>[0-9]{4})","371481199306143242").groupdict("city") 结果{'province': '3714', 'city': '81', 'birthday': '1993'} |
re.split(r’\\’, r’a\b\c’)
或者:
re.split(‘\\\\’, r’a\b\c’)
re.search(‘a’, r’a\A\abc’, flags=re.I). 忽略大小写
多行:
re.search(‘2’, ‘abc\n1234’, flags=re.M)
re.search(‘2’, ‘abc\n1234’, flags=re.S)
^ 以开头、 不包含
Python大神成长之路: 第三次学习记录 集合 函数 装饰 re的更多相关文章
- Python大神成长之路: 第二次学习记录
数据类型 数据操作 bytes 类型 "".encode() 编码-->二进制 "".decode() 解码 判断字符串里的字符是否全为 ...
- Python大神成长之路: 第一次学习记录
一.Python发展史 二.Python2 or 3 博主选择了Python3. 从官网下载Python www.python.org Windows安装python3.5.python2.7.安装 ...
- python成长之路第三篇(1)_初识函数
目录: 函数 为什么要使用函数 什么是函数 函数的返回值 文档化函数 函数传参数 文件操作(二) 1.文件操作的步骤 2.文件的内置方法 函数: 一.为什么要使用函数 在日常写代码中,我们会发现有很多 ...
- 国内某Python大神自创完整版,系统性学习Python
很多小伙伴纠结于这个一百天的时间,我觉得完全没有必要,也违背了我最初放这个大纲上来的初衷,我是觉得这个学习大纲还不错,自学按照这个来也能相对系统的学习知识,而不是零散细碎的知识最后无法整合,每个人的基 ...
- redis成长之路——(三)
redis连接封装 StackExchange.Redis中有一些常功能是不在database对中,例如发布订阅.获取全部key(本代码中已封装到operation中了)等,而且StackExchan ...
- 《ORACLE数据库管理与开发》第三章学习之常用函数记录
<ORACLE数据库管理与开发>第三章学习之常用函数记录 注:文章中的*代表所要操作的列名 1.lower(*)/upper(*),将此列下的值转为小写/大写 2.initcap(*):把 ...
- python成长之路第三篇(3)_内置函数及生成器迭代器
打个广告欢迎加入linux,python资源分享群群号:478616847 目录: 1.lambda表达式 2.map内置函数 3.filter内置函数 4.reduce内置函数 5.yield生成器 ...
- java大神进阶之路
既然励志在java路上走的更远,那就必须了解java的路径.先看图 更加细化的细节如下 一: 编程基础 不管是C还是C++,不管是Java还是PHP,想成为一名合格的程序员,基本的数据结构和算法基础还 ...
- 如何自学成 Python 大神?这里有些建议
人生苦短,我用 Python.为什么?简单明了的理由当然是开发效率高.但是学习 Python 的初学者往往会面临以下残酷的现状:网上充斥着大量的学习资源.书籍.视频教程和博客,但是大部分都是讲解基础知 ...
随机推荐
- 【python-opencv】30-角点检测
[微语]世上有很多不可能,不过不要在你未尽全力之前下结论 特征检测:找到图像特征的技术 特征描述:描述图像特征 Harris角点检测(Corner Detection) 参考: https://doc ...
- Linux命令小计
一.yum和apt-get的区别 Linux系统下安装包格式有:rpm包和deb包. pm包主要应用在RedHat系列包括 Fedora等发行版的Linux系统上 deb包主要应用于Debian系列包 ...
- sqlserver配置允许快照隔离
ALTER DATABASE TustenaOS SET ALLOW_SNAPSHOT_ISOLATION ON
- larabbs安装教程
LaraBBS 是一个简洁的论坛应用,使用 Laravel5.5 编写而成.https://github.com/summerblue/larabbs 1. 克隆源代码克隆 larabbs 源代码到本 ...
- Cookie和Session的区别?
1.Cookie和Session都是会话技术,Cookie是运行在客户端,Session是运行在服务器端. 2.Cookie有大小限制以及浏览器在存cookie的个数也有限制,Session ...
- 数据库每分钟运行监控SQL
每1分钟运行一次,记录正在运行的SQL,监控数据 放在ReportServer库的t_WhoIsActive表中,保留最近30天的数据! USE [ReportServer] GO /****** O ...
- Redis入门到高可用(十二)—— pipeline
一.回忆通信模型 二.流水线 1.什么是流水线 2.pipeline-Jedis实现 3.与原生M(mget,mset等)操作对比 M操作是原子操作 pipeline命令是非原子的,Redis服务器会 ...
- LongAdder,AtomicIntegerFieldUpdater深入研究
从LongAdder看更高效的无锁实现 AtomicIntegerFieldUpdater字段原子更新类 div:not([id]){display:none;} --> ul{padding: ...
- oracle常用分析函数 over(partition by xxx order by xxx)
--over order by 连续累加的意思,把by后面相同的字段,一个组组累加起来SELECT id_,name_,proc_def_id_, count(*) over(order by nam ...
- Google之路
1,找一个靠谱的dns 2, 替换 C:\Windows\System32\drivers\etc\hosts文件 3,刷新dns 在cmd下运行 ipconfig /flushdns 成功后会提示: ...