一、基本规则
1、字符串属于不可变序列类型,一旦创建,无法改变。
2、单引号、双引号、三单引号、三双引号都可以作为界定符,并且不同的界定之间可以相互嵌套。例如:
print('aa',"bb", '''cc''', """dd""", '"ee"', "'ff'", "'''gg'") # aa bb cc dd "ee" 'ff' '''gg'
3、字符串之间可以用加法进行拼接。例如:
x='aa'+"bb"+'''cc'''+"""dd"""+'"ee"'+"'ff'"+"'''gg'"
print(x) # aabbccdd"ee"'ff''''gg'
4、字符串可以用乘法进行复制。例如:
print('a'*5,'xyz'*3) # aaaaa xyzxyzxyz
5、可以对字符串进行切片操作,例如:
x='abcdefgh'; print(x[2:6],x[2:],x[:6]) # cdef cdefgh abcdef
6、转义字符
转义字符,就是在一个字符前加上反斜杠“\”,使它不再表示原来的字符,而变成另外一个意思。例如,n 是小写字母,\n 是换行符。常用的转义字符有:
\b ———— 退格符
\f ———— 换页符
\n ———— 换行符
\r ———— 回车符
\t ———— 水平制表符
\v ———— 垂直制表符
\\ ———— \
\' ———— '
\" ———— "
\3个数字 ———— 一个字符的 ASCII 编码的8进制表示
\x2个数字 ———— 一个字符的ASCII 编码的16进制数表示
\u4个数字和字符 ———— 一个字符的Unicode 编码的16进制数表示
例如:
print('aaa\bccc') # aaccc
print('ddd\neee')
# 显示
# ddd
# eee
print('\\') # \
print('\'') # '
print('\"') # "
print('\141','\142','\143','\101','\102','\103') # a b c A B C
print('\x97','\x98','\x99','\x41','\x42','\x43') # —a b c A B C
print('\u0041','\u0042','\u0043','\u597d','\u5927','\u7b11') # A B C 好 大 笑
二、字符串的格式化
1、基本形式
基本形式:‘%格式字符’%对象
功能:将对象转换成“等值”的其它形式。
格式字符有:
d ———— 十进制整数
o ———— 8进制
x ———— 16进制
e ———— 科学计数法,e小写
E ———— 科学计数法,e大写
f ———— 浮点数(缺省6位)
g ———— 6位之内浮点数,6位之外科学计数法
G ———— 同g,e大写
c ———— 反查Unicode编码表,取对象对应的字符
s ———— 对象的__str__方法的返回值
r ———— 对象的__repr__方法的返回值
%% ———— %
例如:
import datetime
print('%d'%65.336) # 65
print('%o'%65) # 101
print('%x'%65) # 41
print('%e'%65.336) # 6.533600e+01
print('%E'%65.336) # 6.533600E+01
print('%f'%65.336) # 65.336000
print('%f'%65.3366778822) # 65.336678
print('%g'%650000) # 650000
print('%g'%6500000) # 6.5e+06
print('%G'%6500000) # 6.5E+06
print('%c'%65) # A
d = datetime.date.today()
print('%s'%d) # 2020-02-06
print('%r'%d) # datetime.date(2020, 2, 6)
print('百分数:%f %%'%65.336) # 百分数:65.336000 %
2、指定宽数和对齐方式
形式:‘%[对齐方式][最小宽数]格式字符’%对象
+ ———— 右对齐;正数前加正好,负数前加负号;
- ———— 左对齐;正数前无符号,负数前加负号;
空格 ———— 右对齐;正数前加空格,负数前加负号;
0 ———— 右对齐;正数前无符号,负数前加负号;用0填充空白处
最小宽数缺省为0,对齐方式缺省为右对齐,例如:
print('%20d'%65) # 65
print('%20d'%-65) # 65
print('%+20d'%65) # +65
print('%+20d'%-65) # -65
print('%-20d'%65) #65
print('%-20d'%-65) #-65
print('% 20d'%65) # 65
print('% 20d'%-65) # -65
print('%020d'%65) #00000000000000000065
print('%020d'%-65) #-0000000000000000065
3、指定精度
形式:‘%[.小数位数]f’%对象
小数位数缺省为6,例如:
print('%.2f'%65.333) # 65.33
print('%.2f'%65.3366) # 65.34
print('%20.2f'%65.333) # 65.33
print('%20.2f'%-65.3366) # -65.34
三、常用函数
1、查找:find()、index()、rfind()、rindex()、count()、in
find()、index()都是查找一个字符串在另一个字符串中第一次的位置。二者的区别是,在查找不到的情况下,find()返回-1,index()执行异常。
rfind()、rindex() 是从后向前查找第一次出现的位置。
find(x,y)、index(x,y) 从指定的区间[x,y)查找,含x,不含y。
count() 返回一个字符串在另一个字符串中出现的次数,查找不到返回0。
x in y ,x 在 y 中 返回 True,不在返回 False。
例如:
x='abcdefg--abcdefg'
print(x.find('ab'),x.find('cde'),x.find('f')) # 0 2 5
print(x.index('ab'),x.index('cde'),x.index('f')) # 0 2 5
print(x.find('w')) # -1
print(x.index('w')) # ValueError: substring not found
print(x.rfind('ab'),x.rfind('cde'),x.rfind('f')) # 9 11 14
print(x.rindex('ab'),x.rindex('cde'),x.rindex('f')) # 9 11 14
print(x.find('ab',2),x.find('cde',2),x.find('f',2)) # 9 2 5
print(x.index('ab',2),x.index('cde',2),x.index('f',2)) # 9 2 5
print(x.find('f',5,15)) # 5
print(x.find('f',9,15)) # 14
print(x.find('f',9,14)) # -1
print(x.count('c'),x.count('c',1,6),x.count('w')) # 2 1 0
print('ab' in 'aabbcc','abc' in 'aabbcc') # True False
2、分隔与连接:split()、rsplite()、partition()、rpartition()、join()
split(‘x’)、rsplite(‘x’) 用指定的分隔符x从左向右、从右向左分隔。
split(‘x’,y)、rsplite(‘x’,'y) 指定分隔次数y。
partition(‘x’)、rpartition(‘x’) 用指定的分隔符x从左向右、从右向左分隔成三部分:前、x、后。
x.join(y) 返回用用连接符x 连接字符串y 后的新字符串。例如:
例如:
x='abcdefg--abcdefg'
print(x.split('c')) # ['ab', 'defg--ab', 'defg']
print(x.rsplit('c')) # ['ab', 'defg--ab', 'defg']
print(x.split('c',1)) # ['ab', 'defg--abcdefg']
print(x.rsplit('c',1)) # ['abcdefg--ab', 'defg']
print(x.partition('c')) # ('ab', 'c', 'defg--abcdefg')
print(x.rpartition('c')) # ('abcdefg--ab', 'c', 'defg')
x='--'
print(x.join('ddd')) # d--d--d
y = ['ab','cd','ef','gg']
print(''.join(y)) # abcdefgg
print(x.join(y)) # ab--cd--ef--gg
3、大小写:lower()、upper()、capitalize()、title()、swapcase()
x.lower()、x.upper() 返回 x 全部转换成小写、大写后的新字符串。
x.capitalize() 返回 x 的首字母大写,其余全部小写的新字符串。
x.title() 返回 x 每个单词首字母大写,其余全部小写的新字符串。
x.swapcase() 返回 x 每个字母大小写互换后的新字符串。
例如:
x='this is a White Desk'
print(x.lower()) # this is a white desk
print(x.upper()) # THIS IS A WHITE DESK
print(x.capitalize()) # This is a white desk
print(x.title()) # This Is A White Desk
print(x.swapcase()) # THIS IS A wHITE dESK
4、替换:replace()、maketrans()、translate()
x.replace(a,b) 返回 x 中所有a 被替换成b 之后 的新字符串。
t=’’.maketrans(a,b)、x.translate(t) 先依据a、b建立一个字典,然后,依据这个这典将x中的a 逐个替成b 。
例如:
x='this is a White Desk'
print(x.replace('s', 'vvvv')) # thivvvv ivvvv a White Devvvvk
t=''.maketrans('hws','xyz')
print(x.translate(t),t) # txiz iz a Wxite Dezk {104: 120, 119: 121, 115: 122}
5、清理:strip()、lstrip()、rstrip()
x.strip(y)、x.rstrip(y)、x.lstrip(y) 删除x 两端、左侧、右侧指定的字符串y内所有包含的字符,y缺省为空格。例如:
**x=' abcwwwwbbccaa '
print('|',x,'|',x.strip(),'|',x.lstrip(),'|',x.rstrip(),'|')
# 显示:| abcwwwwbbccaa | abcwwwwbbccaa | abcwwwwbbccaa | abcwwwwbbccaa |
print(x.strip('a b')) # cwwwwbbcc**
6、运行:eval()
eval(x) 将字符串看作表达式进行解释运行。例如:
print(eval('3+6+100+3000')) # 3109
eval()函数只能计算单个表达式的值(不支持任何形式的赋值操作),可以有返回值;exec()函数可以动态运行代码段,无返回值。
———————————————— 本篇完 ————————————————
看完之后,麻烦您顺手点击下方 “点赞” 两个字给我点个赞吧 ^-^ , 谢谢您了。
如果您还能像我小学一年级班主任好老师那样,给我随心写上几句表扬或批评的话语,那真是感激不尽!
在我人生的道路上,有了您的鼓励和指导,我一定成长快快。