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 的初学者往往会面临以下残酷的现状:网上充斥着大量的学习资源.书籍.视频教程和博客,但是大部分都是讲解基础知 ...
随机推荐
- vue安装调试器Vue.js devtools
一. 打开https://github.com/vuejs/vue-devtools,进入gitlab.往下翻找到: 找到installation,选择以chrome的拓展方式安装. 二. 这边选择添 ...
- 重读《深入理解Java虚拟机》七、探究Java内存模型
1.计算机物理内存结构(物理内存结构决定了虚拟机内存结构) 由于处理器和主存储设备在运算速度上不上同一个数量级上,因此处理器和主存储器之间不得不增设一层高速缓存,将部分在主存储设备的运算放在高速缓存内 ...
- python处理csv文档
在工作中遇到了使用python解析csv文件的问题,包括读写操作,下面参考官网文档,进行一下总结: 首先CSV (Comma Separated Values) ,也就是逗号分开的数值,可以用Note ...
- tomcat 的acceptCount、acceptorThreadCount、maxConnections、maxThreads 如何确定
acceptCount 连接在被ServerSocketChannel accept之前就暂存在这个队列中,acceptCount就是这个队列的最大长度. ServerSocketChannel ac ...
- ubuntu上编译linux内核
Linux 编译:1,首先解压缩内核.2,make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- digilent_z ...
- larabbs安装教程
LaraBBS 是一个简洁的论坛应用,使用 Laravel5.5 编写而成.https://github.com/summerblue/larabbs 1. 克隆源代码克隆 larabbs 源代码到本 ...
- 爬虫请求库——selenium
selenium模块 selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题.selenium的缺点是效率会变得很慢. sel ...
- javascript篇-浅拷贝与深拷贝
理解javascript 的浅拷贝与深拷贝,首先看一下js的数据类型: js有5种基本数据类型:undefined,null,boolean,number,string 还有一种复杂的数据类型(也叫引 ...
- w97常用功能代码
1,onclick中添加日期控件 2,onpicked事件即是点击控件后触发的事件 3,dp.cal.getNewDateStr()即是点击到的日期字符串 <script> functio ...
- 删除 clean tomcat7:run
1.在eclipse中运行的绿色箭头旁边有个下箭头,点击: 2.选择Run Configurations... 3.在Maven Builder下删除不想要的