python字符串操作

8 Python基本数据类型---字符串

烂漫一生 提交于 2019-12-01 04:56:40
1 字符串的定义与创建 字符串是一个有序的字符的集合,用于存储和表示基本的文本信息 s1 = ' 单引号 ' s2 = " 双引号 " s3 = ''' 三引号 ''' s4 = """ 三引号 """ 2 字符串的特性与常用操作 特性: 有序不可变 补充: 1.字符串的单引号和双引号都无法取消特殊字符的含义,如果想让引号内所有字符均取消特殊意义,在引号前面加r,如name=r'l\thf' 2.unicode字符串与r连用必需在r前面,如name=ur'l\thf' 常用操作: #索引 s = 'hello' >>> s[1] 'e' >>> s[-1] 'o' >>> s.index('e') 1 #查找 >>> s.find('e') 1 >>> s.find('i') -1 #移除空白 s = ' hello,world! ' s.strip() s.lstrip() s.rstrip() s2 = '***hello,world!***' s2.strip('*') #长度 >>> s = 'hello,world' >>> len(s) 11 #替换 >>> s = 'hello world' >>> s.replace('h','H') 'Hello world' >>> s2 = 'hi,how are you?' >>> s2.replace('h','H')

Python之re模块

瘦欲@ 提交于 2019-12-01 02:59:02
一、正则表达式     re模块是python独有的匹配字符串的模块,该模块中提供的很多功能是基于正则表达式实现的,而正则表达式是对字符串进行模糊匹配,提取自己需要的字符串部分,他对所有的语言都通用。注意: re模块是python独有的 正则表达式所有编程语言都可以使用 re模块、正则表达式是对字符串进行操作 因为,re模块中的方法大都借助于正则表达式,故先学习正则表达式。 (一)常用正则 1、字符组 在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示 正则 待匹配字符 匹配结果 说明 [0123456789] 8 True 在一个字符组里枚举合法的所有字符,字符组里的任意一个字符和"待匹配字符"相同都视为可以匹配 [0123456789] a False 由于字符组中没有"a"字符,所以不能匹配 [0-9] 7 True 也可以用-表示范围,[0-9]就和[0123456789]是一个意思 [a-z] s True 同样的如果要匹配所有的小写字母,直接用[a-z]就可以表示 [A-Z] B True [A-Z]就表示所有的大写字母 [0-9a-fA-F] e True 可以匹配数字,大小写形式的a~f,用来验证十六进制字符 2、字符 元字符 匹配内容 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线 \s 匹配任意的空白符 \d 匹配数字 \n

第二章 变量和简单数据类型

删除回忆录丶 提交于 2019-12-01 02:58:17
运行Hello world.py时 Python都做了哪些工作? 1..py指出该程序是一段Python程序 2.编辑器将使用Python解释器来运行它 3.解释器读取没个单词,并确定每个单词的含义 编写程序时,编辑器会以各种方式突出程序的不同部分。 按照文章内容修改Hello World.py程序后输出内容: 添加一个名为message的变量,并在变量中存储一个文本名为"hello world!" 在此期间编译器要做的工作: 1.处理第一行,将文本“hello world!”与变量message关联 2.强变量message关联的值打印出来 在此修改代码,并输出如下 在此程序中,随意修改变量message的值,而Python最终记录变量的最新值 2.2.1 变量的命名及使用 变量命名规则: 1.变量只能包含字母、数字和下划线。可以字母或者下划线打头,数字不行; 2.变量明不能包含空格 3.不能讲Python关键字和函数名作为变量名 4.变量名即简短又具有描述性 5.慎用小写字母l和大写字母O,容易被看错。 就目前而言,应使用小写的Python变量名。 2.2.2使用变量时避免命名错误 确定书写各变量是否正确。 按照书本要求,编写两个独立的程序,命名分别为simple_message.py 及simple_messages.py simple_message.py 输入结果

ProtoBuf 源码简析

て烟熏妆下的殇ゞ 提交于 2019-12-01 02:07:04
ProtoBuf项目描述:   Google Protocol Buffer简称protobuf,为高效的二进制序列化/反序列化协议(一般为google内部使用),不同于xml、json等,其更小巧、高效;avro、thrift等; 其可用于网络协议、数据存储等语言无关、平台无关、可扩展的序列化结构数据格式。只要按照特定条件可支持向前、向后兼容;目前提供了C++、Java、Python 三种语言的 API,这样各语言可以相互序列化和反序列化数据信息(事实上也可以自定义实现其他语言的API接口)。 在使用中,用户可根据自定义或引入数据结构(Message)文件*.proto;此后通过编译器protoc.exe编译该描述文件为指定语言的操作接口,而后将产生的操作接口文件 和libprotobuf.lib添加入项目中进行数据序列化和反序列化操作即可,产生的序列化后的信息可读性很差,此外反序列化也必须知道对应的数据结构描述文件*.proto, 否则无法正确地反序列化,也不再有意义,相对xml,json无法直接插入或修改数据信息内容; 以下仅对C++相关进行分析; 项目工程: gtest:google 白盒测试开源项目,主要用于单元测试,后面的gtest_main、tests项目; gtest_main:简单的对main函数以及testing::InitGoogleTest(&argc,

四步学懂python中的编解码

左心房为你撑大大i 提交于 2019-12-01 01:52:05
1. 字符与字节 一个字符不等价于一个字节,字符是人类能够识别的符号,而这些符号要保存到计算的存储中就需要用计算机能够识别的字节来表示。一个字符往往有多种表示方法,不同的表示方法会使用不同的字节数。比如字母A-Z都可以用ASCII码表示(占用一个字节),也可以用UNICODE表示(占两个字节),还可以用UTF-8表示(占用一个字节)。字符编码的作用就是将人类可识别的字符转换为机器可识别的字节码,以及反向过程。 UNICDOE才是真正的字符串,而用ASCII、UTF-8、GBK等字符编码表示的是字节串。 我们写代码是写在文件中的,而字符是以字节形式保存在文件中的,因此当我们在文件中定义个字符串时被当做字节串也是可以理解的。但是,我们需要的是字符串,而不是字节串。Python2把字节串当做字符串来使用。最能说明这个问题的操作就是取一个包含中文字符的字符串的长度: 对字符串取长度,结果应该是所有字符串的个数,无论中文还是英文 对字符串对应的字节串取长度,就跟编码(encode)过程使用的字符编码有关了(比如:UTF-8编码,一个中文字符需要用3个字节来表示;GBK编码,一个中文字符需要2个字节来表示) 注意:Windows的cmd终端字符编码默认为GBK,因此在cmd输入的中文字符需要用两个字节表示 >>> # Python2 >>> a = 'Hello,中国' # 字节串

Python正则表达式

走远了吗. 提交于 2019-11-30 23:47:16
python正则表达式的用途不过多赘述 python正则表达式的实现主要是通过python的re库,re库是python的标准库,所以无须安装 1.正则表达式的常用操作符 操作符 说明 实例 . 表示任何单个字符 [ ] 字符集,对单个字符给出取值范围 [abc]表示a、b、c,[a‐z]表示a到z单个字符 [^ ] 非字符集,对单个字符给出排除范围 [^abc]表示非a或b或c的单个字符 * 前一个字符0次或无限次扩展 abc* 表示ab、abc、abcc、abccc等 + 前一个字符1次或无限次扩展 abc+ 表示abc、abcc、abccc等 ? 前一个字符0次或1次扩展 abc? 表示ab、abc | 左右表达式任意一个 abc|def表示abc、def {m} 扩展前一个字符m次 ab{2}c表示abbc {m,n} 扩展前一个字符m至n次(含n) ab{1,2}c表示abc、abbc ^ 匹配字符串开头 ^abc表示abc且在一个字符串的开头 $ 匹配字符串结尾 abc$表示abc且在一个字符串的结尾 ( ) 分组标记,内部只能使用 操作符|(abc)表示abc,(abc|def)表示abc、def \d 数字,等价于[0‐9] \w 单词字符,等价于[A‐Za‐z0‐9_] 2.re库的使用 主要功能函数 函数 说明 re.search()

Jackson的基本用法与拓展

别说谁变了你拦得住时间么 提交于 2019-11-30 23:40:21
目录   一、 先搞两个测试需要使用的类   二、 简单操作:obj与json互转     2.1、 对象转json字符串     2.2、 json字符串转对象 三、 拓展需求   3.1、 对象转json时,忽略某个字段     3.2、 对象转json时,自定义json中的属性名     3.3、 对象转json时,忽略对象中为null或者""的属性     3.4、 json转对象时,忽略json中未知的属性     3.5、 对象转json时,生成格式化的json字符串 一、先搞两个测试需要使用的类   分别是Staff(员工)和Department(部门) package cn.ganlixin.demo; import lombok.Data; @Data public class Department { private String depName; private String addr; private String superior; }    package cn.ganlixin.demo; import lombok.Data; import java.util.List; import java.util.Map; @Data public class Staff { private int id; private String name;

python(二)之字符串和列表

こ雲淡風輕ζ 提交于 2019-11-30 19:37:50
字符串 1. 定义  由字符组成的序列,注意单个字符就是子串 2. 创建:变量=字符串 方式:单引号、双引号、三引号 单引号和双引号使用方式类似,交替使用的时候,会输出特殊的字符 三引号自带换行 空字符串 s=“” 空格“ ” 不一样 3. 字符串的操作 (1)运算符 + * in not in is is not < > == + * 新创建了字符串。 (2)索引:获取单个元素 字符串[index]: 从0开始,正数从左到右 负数从右到左 注意:如果越界会报错 界限:-len() ----len()-1 (3)切片:获取多个元素 字符串[start:end] Start end 的方向,默认是从左到右,这时候,start<end Start end都可以是正数,负数,0 Start默认值:0 End默认值:len(s) 包含start,不包含end 如果越界,不会报错。 4. 字符串的相关方法 (1)count(s,start,end):返回统计s的个数   S:要统计的子串   Start end :起始位置,终止位置,包含start,不包含end   默认start end不写,从头找到尾   如果只写一个参数,默认是start (2)index:返回的是要查找子串的位置   如果找不到会报错   Index(s,start,end) (3)find: 同index

day28

大兔子大兔子 提交于 2019-11-30 17:02:16
目录 包 什么是包 为什么要有包 如何使用包 模块与包 导入包内包 绝对导入和相对导入 注意事项 time模块 时间戳(timestamp) 格式化的时间字符串(format string) 结构化的时间(struct time) 三种格式时间的转换 结构化时间 , 定义 now_time datetime模块 hashlib模块 模块特点 基本用法 hmac模块 基本用法 typing模块 作用 基本使用 常用类型 request模块 使用方法 re模块 作用 常用元字符 ^ 以...开头 $ 以...结尾 . 任意字符 \d 数字 \D 非数字 \w 非空字符,即数字字母下划线 \W 空字符,包括空格 换行 \s 空字符,包括空格 换行 \S 非空字符,即数字字母下划线 +前面的一个字符至少1个 [1,正无穷) ? 前面的一个字符0-1个 前一个字符[0,1] 最大只有一个 * 前面的一个字符至少0个 前一个字符[0,正无穷) [] 中括号内的都可以 , 但是只占一个位置 [^] 中括号的都不可以 | 或 满足就打印 , 一个或者两个三个 {2} 前面的字符重复2个 {1,2} 前面的字符重复1-2个 区间是[1,2] 贪婪模式 .(任意字符)*(0-无穷个) 非贪婪模式 .(任意字符)*(0-无穷个)?(让他进入非贪婪模式) re的常用函数 findall compile

Python --------字符串

不打扰是莪最后的温柔 提交于 2019-11-30 15:06:25
P ython 字符串 字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。 创建字符串很简单,只要为变量分配一个值即可。例如: var1 = 'Hello World!' var2 = "Python Runoob" Python 访问字符串中的值 Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。 Python 访问子字符串,可以使用方括号来截取字符串,如下实例: 实例 #!/usr/bin/python var1 = ' Hello World! ' var2 = " Python Runoob " print " var1[0]: " , var1 [ 0 ] print " var2[1:5]: " , var2 [ 1 : 5 ] 以上实例执行结果: var1[0]: H var2[1:5]: ytho Python 字符串连接 我们可以对字符串进行截取并与其他字符串进行连接,如下实例: 实例 #!/usr/bin/python # -*- coding: UTF-8 -*- var1 = ' Hello World! ' print " 输出 :- " , var1 [ : 6 ] + ' Runoob! ' 以上实例执行结果 输出 :- Hello Runoob! Python 转义字符