序
今天继续来分享Python入门基础语法知识啦, 这是第六篇, 从第六篇到后续几篇都会围绕序列这个知识点来展开论述【序列:字符串、列表、元组、集合和字典)】, 为了避免一次灌输太多理论知识而导致各位博友在阅读的过程中感到“不适”(犯困、头大), 所以我会分篇章进行论述, 一片文章为一个知识部分。
这部分内容普遍性和基础性比较强, 会在代码的编写过程中处处遇到,我会尽量总结的详尽一些,如有遗漏或者纰漏,还请各位前辈和同学能够指出错误,我一定会虚心接受并改进,为给各位带来更优质的文章而努力。
由于字符串的知识比较多,将会分两个章节来阐述,下面是字符串的第一部分。
好啦,开始我们今天的分享啦!
字符串(1)
- 字符串是Python中的基本数据类型,是不可变序列;
- 字符串以及Python中常用的数据类型请在Python入门基础语法知识2中查看;
字符串的驻留机制
- 所谓的驻留机制就是不开辟新的储存空间,共用一个空间;
- 会驻留的情况:
①、字符串的长度为0或者1时(长度为1时只要内容相同就会驻留);
②、 符合标识符的字符串,即含有字母、数字、下划线的字符串;
③、[-5,256]之间的数字;
④、字符串只在编译时进行驻留,而不是运行时(在运行之前就满足前面三种情况就会驻留,如果是运行之后才满足的话就不驻留)。 - 注意:驻留机制是在Python中成立,pycharm对驻留机制有优化,只要是内容相同就会驻留。
字符串的查询
- 字符串的查询有四种操作方式:index()、 rindex()、find()、 rfind(),他们的语法格式都相同,【以index()为例:字符串名.index(‘查询内容’)】,前缀加上了r就是和原始查询位置相反,具体如下:
①、index():查询子串(substr)第一次出现的位置,查不到抛错ValueError;
②、find(): 查询子串(substr)第一次出现的位置,查不到返回-1;
③、rindex(): 查询子串(substr)最后一次出现的位置,查不到抛错ValueError;
④、 rfind(): 查询子串(substr)最后一次出现的位置,查不到返回-1。
对字符串的查询建议使用find()、rfind(),查不到程序也不会报错,只会返回-1
具体见如下示意代码:
a = 'hello'
print(a.index('l')) # 第一个l的索引为2(从左到右索引为0到n,从右到左为-1到-n)
print(a.rindex('l'))
print(a.find('e'))
print(a.find('b')) # 查询不到返回结果为-1
print(a.rfind('o'))
print(a.rfind('m')) # 查询不到返回结果为-1
运行结果如下:
E:\Python\python.exe E:/py/CSDN博客/语法6.py
2
3
1
-1
4
-1
Process finished with exit code 0
字符串内容对其方式
①、居中对齐:center()
- 语法结构:字符串名/字符串.center(width,‘filler’)
- 第一个参数width:指定宽度【带字符串的总的宽度,字符串居中,两边平均;当宽度设置小于字符串的宽度时,则会返回原字符串】
- 第二个参数filler:指定填充符【字符串居中时两边空白内容用什么补充,如果不写就默认空格做填充符】
②、左对齐:ljust()
- 语法结构:字符串名/字符串.ljust(width,‘filler’)
- 两个参数的和居中对齐类似;
③、右对齐:rjust()
- 语法结构:字符串名/字符串.rjust(width,‘filler’)
- 两个参数的和居中对齐类似;
④、右对齐:zfill()
- 语法结构:字符串名/字符串.zfill(width)
- zfill()只有一个宽度参数,因为它的填充符为0;
- 宽度小于字符串长度时返回原字符串,即不变化;
- 字符串开头有一个负号(-),则填充符0会填充在该负号的后面;
具体见如下示意代码:
a = 'python'
print(a.center(10))
print(a.center(10, '*'))
print(a.ljust(10))
print(a.ljust(10, '*'))
print(a.rjust(10))
print(a.rjust(10, '*'))
print(a.zfill(10)) # zfill()右对齐左边用0填充
b = '-python'
print(b.zfill(10)) # 字符串开头有负号用zfill()右对齐填充符0在负号的后面
print(b.rjust(10))
运行结果如下:
E:\Python\python.exe E:/py/CSDN博客/语法6.py
python
**python**
python
python****
python
****python
0000python
-000python
-python
Process finished with exit code 0
字符串大小写转换
①、upper():英文全变为大写【语法格式为:字符串名.upper() ;下面的语法格式类似,不再叙述】;
②、lower():英文全变为小写;
③、swapcase():大小写相互转换,类似于对立事件,大写变小写,小写变大写;
④、capitalize():第一个英文字母变为大写,其余均小写;
⑤、title():所有单词首字母变为大写,其余均小写。
注意:字符串的大小写转换之后会产生新的字符串对象,原字符串内容不变,无论在转换前后内容是否变化,其id值都不同。
- 具体见如下示意代码:
name = 'jAck,Jone,marY,siLLy'
print(name.upper()) # 所有字母均大写
print(name.lower()) # 所有字母均小写
print(name.swapcase()) # 大写变小写,小写变大写
print(name.capitalize()) # 第一个英文字母变为大写,其余的均变为小写
print(name.title()) # 每个单词的第一个字母变为大写,其余均小写
- 运行结果如下:
E:\Python\python.exe E:/py/CSDN博客/语法6.py
JACK,JONE,MARY,SILLY
jack,jone,mary,silly
JaCK,jONE,MARy,SIllY
Jack,jone,mary,silly
Jack,Jone,Mary,Silly
Process finished with exit code 0
字符串的劈分
①、split()
- 从字符串左侧开始劈分,默认的分隔符是空格;【语法格式为:字符串名.split()】
- 劈分后返回的值是一个列表;
- 通过参数sep指定劈分符,语法格式为:【字符串名.split(sep=‘劈分符’) 】;
- 通过参数maxsplit指定最大劈分次数,最大劈分后的子串回单独作为一个部分【字符串名.split(maxsplit=最大劈分次数)】 ;
- 总的语法格式为:字符串名.split(sep=‘劈分符’,maxsplit=最大劈分次数),如果参数不写的话默认空格为劈分符,字符串完全劈分;
- 也可以简写为:字符串名.split(‘劈分符’,最大劈分次数)
- 具体见如下示意代码: