Python编程入门-第六章 字符串 -学习笔记
来源:互联网 发布:阿里巴巴淘宝城 编辑:程序博客网 时间:2024/06/05 09:27
第6章 字符串
一、字符串索引
1、假设有字符串s=”apple”,那么可以通过索引去访问其中的字符,Python通过方括号来标识字符串索引,索引从0开始:s[0]=”a”,s[1]=”p”,s[2]=”p”,s[3]=”l”,s[4]=”e”。
2、Python也支持使用负数索引,比如如果要访问字符串s的最后一个字符,那么按照正索引则可以通过s[len(s)-1]访问,也可以通过s[-1]来访问最后一个字符,这就是负数索引,从字符串最后一位到第一位对应的索引数字为-1,-2…,-[len(s)]。
3、使用for循环访问字符串中的字符
下例程序计算给定字符串的字符编码总和:
#codesum.pydef codesum1(s): """Returns the sums of the character codes of s. """ total=0 for c in s: total=total+ord(c) return totalmyinput=input("please input a string:")print("你输入字符串的字符编码和为:"+str(codesum1(myinput)))
上述代码中直接通过”for c in s”来进行索引,每次c迭代为s中的字符,表达式简洁明了,ord()函数功能是返回字符的编码数值。
如果使用正索引则如下,表达方面相对显得更复杂:
#codesum1.pydef codesum1(s): """Returns the sums of the character codes of s. """ total=0 for i in range(len(s)): total=total+ord(s[i]) return totalmyinput=input("please input a string:")print("你输入字符串的字符编码和为:"+str(codesum1(myinput)))
二、字符
1、之前提到函数ord()可以获得字符对应的编码值,如ord(“a”),为97。同样,给定字符编码,也可以获得其对应的字符,如chr(97),为“a”。
2、转义字符:一般常用的转义字符:
\对应反斜杠
\’对应单引号
\”对应双引号
\n对应换行符
\r对应回车
\t对应水平制表符
如>>>print(“\”and\’ are quotes”)
输出为:”and’ are quotes
print(“\ must be written \\”)
输出为:\ must be written \
三、字符串切片
对于从字符串中提取子串可通过切片来操作,指定要提取子串第一个字符的索引号,以及子串最后一个字符的索引号加1。
如>>>food=’apple pie’
food[0:5]
输出为:apple
food[6:9]
输出为:pie
如果省略切片起始索引,将默认为0;如果省略切片的终止索引,将默认为至最后一个字符。
如>>>food=’apple pie’
food[:5]
输出为:apple
food[6:]
输出为:pie
food[:]
输出为:apple pie。
示例:返回一个文件名中的扩展名
def get_ext(fname): i=0 for c in fname: if c=='.': break i+=1 return fname[i+1:]fn=input("please input a filename:")print("你输入文件名的后缀为:"+get_ext(fn))
也可以利用rfind函数:
def get_ext(fname): #从右边开始查找字符"." dot=fname.rfind(".") #没有找到 if dot==-1: return "" else: return fname[dot+1:]fn=input("please input a filename:")print("你输入文件名的后缀为:"+get_ext(fn))
四、标准字符串函数
1、测试函数
主要包括:
s.endswith(t):是否以t结尾
s.startswith(t):是否以t开头
s.isalnum():是否只包涵字母或数字
s.isalpha():是否只包含字母
s.islower():是否只包含小写字母
s.isupper():是否只包含大写字母
t in s:s是否包含字符串t
2、搜索函数
主要包括:
s.find(t):如果没有找到子串t,则返回-1;否则返回t在s中的起始位置
s.rfind(t):与find相同,但从右重点内容往左搜索
s.index(t):与find相同,但如果找不到t则引发一个异常
s.rindex(t):与index相同,但从右往左搜索
3、改变大小写的函数
s.capitalize():将s[0]改为大写
s.lower():将s所有字母都小写
s.upper():将s所有字母都大写
s.swapcase():将s中字母大小写互换
上述返回字符串
4、设置格式的函数
s.center(n,ch):包含n个字符的字符串,其中s位于中央,两边用字符ch填充
s.ljust(n,ch):包含n个字符的字符串,其中s位于左边,右边用字符ch填充
s.rjust(n,ch):包含n个字符的字符串,其中s位于右边,左边用字符ch填充
上述返回字符串
5、剥除函数
s.strip(ch):从s开头和末尾删除所有包含在字符串ch中的字符
s.lstrip(ch):从s开头删除所有包含在字符串ch中的字符
s.rstrip(ch):从s末尾删除所有包含在字符串ch中的字符
上述返回字符串
6、拆分函数
s.partition(t):将s拆分为三个字符串head、t、tail。head为t前面的子串,tail为t后面的子串。
s.rpartition(t):与partition相同,但从s右边开始搜索t
s.split(t):以t为分隔符,将s划分成一系列的子串,并返回一个由这些子串组成的列表
s.rsplit(t):与split相同,但从右边开始搜索t
s.splitlines():返回一个由s中各行组成的列表
7、替换函数
s.replace(old,new):将s中的每个old替换为new
s.expandtabs(n):将s中的每个制表符替换为n个空格
上述返回字符串
8、其他函数
s.count(t):返回t在s中出现的次数
s.encode():设置s的编码
s.join(seq):使用s将seq中字符串连接成一个字符串
s.zfill(width):在s左边添加足够多的0使得字符串长度为width
五、正则表达式
一些简单的正则表达式运算符
xy?:可描述x和xy(?表示其左边的字符是可选可不选的)
x|y:可描述x和y
x*:可描述由0或更多个x组成的字符串
x+:可描述至少由1个x组成的字符串
正则表达式中可使用圆括号指出将运算符用于哪个子串。如:
(ha)+!:表示ha!,haha!,hahaha!…
ha+!:表示ha!,haa!,haaa!…
1、使用正则表达式匹配字符串
对于程序如下:
def is_done1(s): return s=='done' or s=='quit'#使用正则表达式import re #导入正则表达式库def is_done2(s): return re.match('done|quit',s)!=None
函数re.match(regex,s)表示当regex与s不匹配时返回None,否则返回一个特殊的正则表达式匹配对象。针对上例,如果s不为’done’或’quit’中之一,则re.match()返回None。
如果要识别一个:开头为一个或多个’ha’,末尾为一个或多个‘!’,的字符串。则可以通过正则表达式匹配更容易:
import redef is_funny(s): return re.match('(ha)+!+',s)!=None
- Python编程入门-第六章 字符串 -学习笔记
- Python 核心编程笔记 第六章 序列(字符串部分)
- Python核心编程第二版第六章学习笔记
- python学习笔记 第六章
- Python编程入门-第二章学习笔记
- Python核心编程第六章笔记
- Python学习笔记-第六章 抽象
- 《python编程入门经典》学习笔记第九章(一)
- Python编程入门-第三章 编写程序 -学习笔记
- Python编程入门-第四章 流程控制 -学习笔记
- Python编程入门-第五章 函数 -学习笔记
- Python编程入门-第七章 数据结构 -学习笔记
- Python编程入门-第八章 输入和输出 -学习笔记
- Python编程入门-第9章 异常处理 -学习笔记
- Python编程入门-第10章 异常处理 -学习笔记
- Python编程 从入门到实践 第六章 字典
- 【Python编程:从入门到实践】第六章:字典
- SQL Server 2008编程入门经典笔记(第六章:约束)
- 关于逆序对的两种做法(归并排序+树状数组c++)
- vs2013 编译 snmp++-3.3.7
- 20161027
- 转载特殊函数
- igb uio小结
- Python编程入门-第六章 字符串 -学习笔记
- Android Input之JoyStick
- struts2拦截器
- WPF CM框架下点击不同的按钮切换到不同的界面
- stm32中程序内存的理解和一些问题的解决
- 按Android平板(或手机)的物理按键(如音量键)实现Activity界面的跳转
- 中途相遇法(侏罗纪,LA 2965)
- C++面向对象高级编程(上)学习笔记
- 6. React 表单使用介绍