Python数据类型之二
- 二,字符串类型
- 1.字符串的截取与加长
- (1) 截取:
- (2) 加长:
- (3) 字符串转变需注意
- 2. 字符串与转义字符
- (1) 什么是转义字符?
- (2) 几种常见的转义字符
- (3) 转义字符的非转义输出
- (4) 续行符 \ 的使用:
- 3.字符串的格式化输出
- (1) 使用% 格式化输出
- (2) 使用format 格式化输出
- 4. 常见的字符串函数
- (1)string.isnumeric():
- (2)splitStr.join(string):
- (3)string.center(width, fillchar):
- (4)string.ljust(width[ ,fillchar]) / rjust(width[ ,fillchar]):
- (5)string.lstrip(ch) / rstrip(ch) / strip(ch):
- (6)max(string) / min(string):
- (7)chr(x) / ord(x):
- (8)string.replace( old, new [,times] )
- (9)s.find(str,beg=0,length=len) / rfind(str,beg=0,length=len)
- (10)s.index(str,beg=0,length=len) / rindex(str,beg=0,length=len)
- (11)string.split(splitChar [,times] )
- (12)string.swapcase()
- (13)string.upper() / string.lower()
- (14)string.splitlines(True)
二,字符串类型
python中的字符串用单引号(’ ')或者双引号(" ")括起来
但是都以单引号输出显示
1.字符串的截取与加长
字符串索引从左往右从0,1开始,从右往左从-1,-2开始
(1) 截取:
string [ start, end, step ]
举例:string = ‘liyuhong’
字符串长度为8,索引从0到7
start : 指定截取字符串的起始字符(会取到它)
start可超过字符串最大长度,但结果为空:
start会取到start值:
end : 指定截取字符串最后一个字符( 但不会取到它,类似range(start, end, step)函数)
同样,end可超指定字符串的最大长度:
但end不会取到该值:
step : 步长,默认步长为1,即每次正向(从左start往右end)扫描一个字符;指定符号后,可为负数,即每次反向(还是从左start往右end,但在字符串中反向)扫描字符;指定step大小后,可打破顺序扫描,以步长大小为单位进行跳跃式间隔扫描反向扫描,end 值不会取到,道理同上:
反向取到所有长度字符串:
跳跃式间隔扫描:
step = -3 说明:
从start到end,以三个字符串为一组,每个扫描到的字符属于不同的一组,间隔为2 (3-1)
1组:gno ;2组:huy ; 3组:il
g 与 h 与 i 间隔为 2
(2) 加长:
乘法加长:字符串 * n (n 为 int 类型)
n为重复字符串的次数,以重复n次的字符串输出
n 可以为 0 和 负数,但是字符串结果为空:
加法加长:字符串 + 字符串与字符串变量相加:
直接与字符串值相加:
(3) 字符串转变需注意
Python中字符串的每个字符不可单独改变,但整个字符串的值可以覆盖:
不可更改:
可覆盖:
2. 字符串与转义字符
(1) 什么是转义字符?
有些字符(如:r、n等)在前面加上反斜杠( \ ),它的涵义和作用就发生了变化,以这种形式呈现出来的字符组合就是转义字符(如:\r、\n),\ 起到转义的作用
【接地气的解释,具体深层次解释请查阅资料】
(2) 几种常见的转义字符
- \n换行符:
- \r水平制表符(四个空格):
(3) 转义字符的非转义输出
即,不使转义字符发挥其含义,按字符串样式输出
方法:去转义转义字符:
- 转义换行符( \n ):
- 转义转义符号( \ ):
(4) 续行符 \ 的使用:
用在一行行尾部
3.字符串的格式化输出
(1) 使用% 格式化输出
% + 字符 称为 占位符
- 整数的输出:
8进制输出(%o):
10进制输出(%d):
16进制输出(%x): - 浮点数的输出:
默认6位有效数字(%f):
保留3位有效数字(%.3f):
科学记数法输出(%e):
默认6位有效数字 - 字符串的输出:
直接输出(%s):
取位输出(%.2s,取了2位):
对齐输出(%15s,右对齐共占15格;%-15s,左对齐共占15格):
(2) 使用format 格式化输出
- 不带编号,即{}:
16进制输出:
字符串取位: - 带数字编号,可调换顺序,可重复,即{1},{3}:
- 带关键字,即{name}, {password}:
4. 常见的字符串函数
(1)string.isnumeric():
判断字符串是否全为数字
(2)splitStr.join(string):
将spliStr作为分隔符join(加入)到string字符串的每个字符之间:
- 分隔符:123;字符串:liyuhong
- 分隔符:|;字符串:oxox
- 分隔符:|;字符串:6,单字符,无需分割,无分割
(3)string.center(width, fillchar):
以原始字符串位中心,生成新字符串;fillchar为str类型,默认为空格
(4)string.ljust(width[ ,fillchar]) / rjust(width[ ,fillchar]):
返回一个左对齐 / 右对齐 的指定width宽度的新字符串,fillchar默认空格填充。
当width值小于string字符串长度时,按原始字符串长度显示:
(5)string.lstrip(ch) / rstrip(ch) / strip(ch):
- 截掉字符串左边/右边/两边的空格, ch为空时,默认截掉空格(包括’\n’, ‘\r’, ‘\t’, ’ ')
- 指定ch为要删除的字符:
str2.rstrip(‘5’)删除说明:从右侧第一项开始删除5,遇到非5为止为右侧删除完毕:
左侧和右侧第一项都非5,两侧直接当作删除完毕,原样返回:
(6)max(string) / min(string):
返回string字符串中ASCII值最大/最小的字符:
(7)chr(x) / ord(x):
将一个整数转化成一个字符 / 将一个字符转化成一个整数
整数同样为ASCII数值
A-Z 65-90
a-z 97-122
(8)string.replace( old, new [,times] )
将string字符串中的原有字符串old替换成new字符串,从而形成新的string字符串序列,默认new替换所有old,除非指定times替换次数。
- 默认,全部替换
指定的old与new可为字符或者字符串 - 指定times替换次数
(9)s.find(str,beg=0,length=len) / rfind(str,beg=0,length=len)
从左则在s字符串中查找第一个出现的str(可为字符或者字符串),从beg开始(默认为0),查找长度为len(默认为s的整个长度);rfind则从右侧开始查找,其余不变
- 字符查找
- 字符串查找
找不到则返回-1
(10)s.index(str,beg=0,length=len) / rindex(str,beg=0,length=len)
解释同find
找不到则报错
(11)string.split(splitChar [,times] )
以splitChar(字符或者字符串)为分隔符,将string拆分成不同组字符串,各个字符串整体形成一个列表
- 单个字符的分割
- 连续相同字符的分割,以及头尾字符的分割,注意空字符
连续字符为分隔符
头尾作为分隔符: - 指定分割次数
(12)string.swapcase()
字符串中每个字符的大小写互换
(13)string.upper() / string.lower()
将字符串中的每个字符转换成大写 / 转换成小写
(14)string.splitlines(True)
以回车换行(’\r’, ‘\r\n’, \n’)为条件分割成各个字符串,整体形成一个列表,参数用来设置是否保留回车换行符
参数为True则保留