正则表达式是一种对字符和特殊字符 *** 作的逻辑公式,
从特定的字符中用正则表达式来过滤;主要用于模式匹配和替换工作
#match 匹配开头 查找存在的值,返回对象中包含索引值
import re
a ='abcdqendfbdnf'
b =re.match('ab',a)
print(b)#<_sre.SRE_Match object; span=(0, 2), match='ab'>
#查询存在的值,返回索引值,用span
import re
a ='abcdqendfbdnf'
b =re.match('ab',a)
print(b.span())
#查找不存在的字符,返回none值
import re
a ='111abcdqendfbdnf'
b =re.match('ab',a)
print(b)#None
#search 匹配第一个
import re
a ='abcsdfsdaff'
b = re.search('f',a)
print(b)#<_sre.SRE_Match object; span=(5, 6), match='f'>
#查找不存在的数据,返回none值
import re
a ='abcsdfsdaff'
b = re.search('j',a)
print(b)#None
# findall 查找字符存在,有则显示字符
import re
a = 'abcsafasf'
b = re.findall('a',a)
print(b)#['a', 'a', 'a']
#查找不存在字符,则显示一个空列表
import re
a = 'abcsafasf'
b = re.findall('e',a)
print(b)#[]
b = compile("for i in range(10): print(i,end='')",'','exec')
#compile(source(必传)可以是字符串,)
exec (b)
for i in range(10):
print(i,end='')
^尖角符 匹配开头
a ='hello zhangsan'
print(re.findall('^h...n',a))#['hello zhangsan']
print(re.findall('^h.n',a))#[]
#. 元字符 匹配除换行符n以外的任意一个字符
a ='hello zhangsan'
print(re.findall('w...n',a))#['hello']
print(re.findall('h.n',a))#['san']
# #$ 匹配结尾
# a ='hello zhangsan'
# print(re.findall('s.i$',a))#['san']
# print(re.findall('ce$',a))#[]
#* 重复匹配,匹配前一个字符
a ='abdfsnabbaaasds'
print(re.findall('ab*',a))#['ab', 'abb', 'a', 'a', 'a']
print(re.findall('ba*',a))#['b', 'b', 'baaa']
print(re.findall('ab+',a))#重复匹配前一个字符一次或更多次['ab', 'abb']
print(re.findall('ab?',a))#?匹配前一次或0次['ab', 'ab', 'a', 'a', 'a']
{m} 匹配前一个字符m次
a ='abdfsnabbaaasds'
print(re.findall('a{4}s',a))
print(re.findall('a{3}s',a))
print(re.findall('a{2}s',a))
{m,n}匹配前一个字符m到n次,(包括n次)
a= 'aaaasbdnasdbdaaasfsdsassaas'
print(re.findall('a{1,4}s',a))#['aaaas', 'as', 'aaas', 'as', 'aas']
print(re.findall('a{}s',a))#[]
print(re.findall('a{2}s',a))#['aas', 'aas', 'aas']
d:数字0-9
D:非数字
s:空白字符
n:换行符
r:回车符
#d:数字0-9 D:非数字 s:空白字符 n:换行符 r:回车符
a = 'abas1234567890005343e'
print(re.findall('d',a))#['1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '0', '0', '5', '3', '4', '3']
print(re.findall('d{5}',a))#['12345', '67890', '00534']
print(re.findall('D',a))#['a', 'b', 'a', 's', 'e']
print(re.findall('D{5}',a))#[]
print(re.findall('D{4}',a))#['abas']
b ='abnratyyr'
print(re.findall('s{2}',b))#['nr'] 匹配两个空白符
print(re.findall('S{2}',b))#['ab', 'yy']匹配两个非空白符
c = 'ab 123rn'
print(re.findall('w{2}',c))#['ab', '12'] 任意两位数字字母
print(re.findall('W{2}',c))#['rn']两位非数字字母
xlrd 模块
xlrd 是可用于读取excel表格数据(不支持写)
支持xlsx和xls格式;(不支持csv文件,csv文件可用csv模块 *** 作)
#open_workbook()打开表格,获取所有sheet名称
import xlrd#引用xlrd模块
url= r'D:test1xiaoliu.xls'#本地文件路径
data =xlrd.open_workbook(url)#打开表格
#print(data.sheet_names())#获取所有的sheet名称
#print(data.sheet_by_name('dcs9'))#通过sheet名查找
#print(data.sheet_by_index(0))#通过索引名查找
#print(data.nsheets)#获取sheet数量
# sheet =data.sheets()[0]
# print(sheet.name)#获取sheet名称dcs9
# print(sheet.nrows)#获取总行数10行
# print(sheet.ncols)#获取总列数6列
# print(sheet.row_values(0))#获取第一行所有内容['id', 'name', 'age', 'math', 'chinese', 'english']
# print(sheet.row(0))#获取单元格值类型和内容[text:'id', text:'name', text:'age', text:'math', text:'chinese', text:'english']
#print(sheet.row_types(0))
# print(sheet.row_values(0,2,5))
#0表示行,索引从0开始;2表示是开始的列,5结束列(不包含)
#第一个值表示行数,第二值表示开始列,第三值结束列
# print(sheet.col_values(0,1,3))
#0表示列,索引从0开始;1表示开始行,3表示结束行(不包含)
#第一个值表示列数,第二值表示开始行,第三值结束行
通过变量获取表中的指定列或行的数据
import xlrd
url =r'D:test1zhangsan.xls'
data = xlrd.open_workbook(url)
sheet =data.sheets()[0]
for i in range(sheet.ncols):
#for i in range(sheet.nrows):
#print(sheet.row_values(i)[1])
print(sheet.col_values(i)[1])
类定义
class 类名称():
类名称定义
不要纯数字命名
不要用python中保留的字符来命名
不要出现特殊字符
要简短且见名知义
当类名称中有多个单词出现时,应采用驼峰式---ZhangSan()
class Four1():#定义一个类
def __init__(self,x,y):#构造函数中的形参属于类,基于类来创建对象的时候需要赋予实参
self.x = x#把形参变成实例变量
self.y = y#把形参变成实例变量
def a1(self):#实例方法
return self.x +self.y
def a2(self):#实例方法
return self.x - self.y
def a3(self):#实例方法
return self.x * self.y
p = Four1(12,4)#实例化对象,通过Four1()类创建对象名称p
print(p.a1())#通过对象调用方法
print(p.a2())#通过对象调用方法
print(p.a3())#通过对象调用方法
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)