
转义字符与原始字符串常用转义字符\n换行符\t制表符\\一个反斜杠\单引号\双引号在字符串引号前加r或R表示原始字符串不进行任何转义例如 rC:\temp常用格式字符%s字符串%c单个字符%d十进制整数%o八进制整数%x十六进制整数%e与%E指数基底为e与E%f与%F浮点数%%一个百分号字符串的三种引用变量的格式化方法1. 百分号格式化格式化字符串...%-0m.n格式字符...%item第一个%格式化开始标志格式字符如%s, %d等格式化结束标志-左对齐正数加正号 0空位补0(不可指定其它字符)通常与最小宽度一起使用m最小宽度默认补空格.n保留n位小数item待转换表达式如一个变量至少要有%格式字符 % item其余可选示例 s %08.2f %-5d % (3.14159, 123) print(s) 00000003.14 123 2. str.format() 方法格式化格式化字符串...{索引:格式说明符}....format(表达式0, 表达式1)占位符冒号为格式说明符开始的标志{索引:格式说明符}索引与格式说明符可都不带可带其一也可都带不带索引表达式数量必须和占位符数量一致依次取表达式带索引取索引对应的表达式不带格式说明符直接填入原表达式计算结果带格式说明符原表达式计算结果按规定格式格式化后填入索引下标索引...{2}...{1}....format(表达式0, 表达式1, ...) # 填对应下标的表达式名字索引...{名b}...{名a}....format(名a表达式0, 名b表达式1, ...) # 填对应名称的表达式格式说明符[[fill]align][sign][#][0][width][,][.precision][type] # 中括号表示可选可不选fill填充符同时有[fill]与[0]按fill来。与align一起使用align数字类型对齐方式左对对齐右对齐居中对齐^在正负号和整数和数字间填充sign表示正数加正号、负数加符号-表示默认的仅负数加符号#加前缀。若选上#则二进制加0b八进制加0o十六进制加0x0空位补0width最小宽度,千分位加逗号.percision保留percision位小数例如.2保留2位小数type格式字符如s, d, f对应中文[[填充符]对齐方式][带正负号/只带负号][进制数加前缀][空位补0][最小宽度][千分位逗号][.保留小数位数][格式字符]# 示例 # 名字索引 print(name is {name}, age is {age}, QQ is {qq}.format(nameZhang san,age40,qq12345****)) name is Zhang san, age is 40, QQ is 12345**** # 下标索引与格式说明符同时使用 print({0:,} in hex is: {0:#x}, {1} in oct is {1:#o}.format(5555,55)) # {0:,} 索引0 - 5555 - 格式说明符为, - 千分位加逗号 - 5,555 # {0:#x} 索引0 - 5555 - 格式说明符为#x - 转为十六进制数加前缀 - 0x15b3 # {1} 索引1 - 55 - 无格式说明符 - 直接填入 - 55 # {1:#o} 索引1 - 55 - 格式说明符为#o - 转为八进制加前缀 - 0o67 5,555 in hex is: 0x15b3, 55 in oct is 0o67 3. f 字符串格式化格式化字符串f...{表达式名1:格式说明符1}...{表达式名2:格式说明符2}...在字符串前加f之后使用如上形式给出。完全支持与str.format()方法相同的格式说明符# 示例 num1 5555 num2 55 print(f{num1:,} in hex is: {num1:#x}, {num2} in oct is {num2:#o}) # {num1:,} - 5555 - 格式说明符为, - 千分位加逗号 - 5,555 # {num1:#x} - 5555 - 格式说明符为#x - 转为十六进制数加前缀 - 0x15b3 # {num2} - 55 - 无格式说明符 - 直接填入 - 55 # {num2:#o} - 55 - 格式说明符为#o - 转为八进制加前缀 - 0o67 5,555 in hex is: 0x15b3, 55 in oct is 0o67 常见等价考法scores 3.14 # 百分号 s3 %010.2f % scores print(s3) 0000003.14 # str.format() s2 {:010.2f}.format(scores) print(s2) 0000003.14 # f 字符串 s1 f{scores:010.2f} print(s1) 0000003.14 字符串常用方法1. str.find, str.rfind, str.index, str.rindex 查找子串在str首/末次出现位置str1.find(str2, 起, 止)str1.index(str2, 起, 止)str1.rfind(str2, 起, 止)str1.rindex(str2, 起, 止)起止均不指定表示查找整个str1。也可仅指定起始。查找str2在str1在查找范围的下标(下标从0起)。find与index返回第一次出现位置rfind与rindex返回最后一次出现位置。若查找到返回子串首字符出现的下标若查找失败find/rfind返回-1index/rindex报错str1 01234567890123456789 print(str1.find(01)) 0 print(str1.find(01, 10)) 10 print(str1.find(01, 1, 9)) -1 # 查找失败 print(str1.rfind(01)) 10 print(str1.index(01, 1, 9)) Traceback (most recent call last): File ***.py, line 23, in module print(str1.index(01, 1, 9)) ~~~~~~~~~~^^^^^^^^^^^^ ValueError: substring not found s abc s.find() #0 s.rfind() #32. str.count 返回子串出现次数str1.count(str2)返回str2在str1中出现次数。默认返回0返回非重叠子串个数print(aaaaa.count(aa)) 2 3. str.split, str.rsplit 分割、右分割str.split() # 从左向右按白字符分割返回删除白字符和空字符后的分隔列表str.rsplit() # 从右向左按白字符分割返回删除白字符和空字符后的分隔列表str.split(分隔符) # 从左向右按分隔符分隔返回删除分隔符后的分隔列表(会保留切出的空字符)str.rsplit(分隔符) # 从右向左按分隔符分隔返回删除分隔符后的分隔列表(会保留切出的空字符)str ab, 12,6,,\t4,, 13 # 不指定分隔符默认按白字符分隔 print(str.split()) [ab,, 12,6,,, 4,,, 13] # 此处按白字符空格和换行符分隔了不保留空字符 # 空格为分隔符 print(str.split( )) [ab,, , 12,6,,\t4,,, 13] # 指定了分隔符保留空字符 # 逗号为分隔符 print(str.split(,)) [ab, 12, 6, , \t4, , 13] # 指定了分隔符保留空字符 由于指定了分隔符不会自动舍弃空字符若需得到分隔且删除空字符后的列表可按照如下方法str ab, 12,6,,4,, 13 lst str.split(,) print(lst) [ab, 12, 6, , 4, , 13] # 保留切出的空字符 result [item for item in lst if item] # 空字符作为False不会被列表推导式筛选 print(result) [ab, 12, 6, 4, 13] 4. str.partition, str.rpartition 分割为三部分str.partition(分隔符) # 从左向右找到str中分隔符将str分为[分隔符前, 分隔符, 分隔符后]三部分返回元组str.rpartition(分隔符) # 从右向左找到str中分隔符将str分为[分隔符前, 分隔符, 分隔符后]三部分返回元组5. join 字符串连接连接符.join(字符串列表)lst [1, 2, 3, 4] print(.join(lst)) 1234 6. str.lower, str.upper, str.capitalize, str.title 大小写转换str.lower()返回全小写字符串str.upper()返回全大写字符串str.capitalize()返回首字母大写字符串str.title()返回仅第一个单词首字母大写字符串7. str.replace 子串替代str.replace(old, str2, 次数)返回值将str中字串old逐个替换成new共替换够次数(不写次数则全部替换)不改变原字符串(因字符串不可变)str abcabcdabsdabc str1 str.replace(abc, 36) print(str1) 3636dabsd36 str2 str.replace(abc, 36, 2) print(str2) 3636dabsdabc 8. str.strip, str.rstrip, str.lstrip 删除左右指定字符令drop为要删字符组成的字符串将字符串对应的端删到遇到不在drop中的字符为止str.strip(drop)从左端和右端同时删除直到遇到不在drop中的字符str.rstrip(drop)删str右端直到遇到不在drop中的字符str.lstrip(drop)删str左端直到遇到不在drop中的字符str abcabcdabsdabc str1 str.strip(abc) print(str1) dabsd str2 str.lstrip(abc) print(str2) dabsdabc str3 str.rstrip(abc) print(str3) abcabcdabsd eval 函数eval(字符串)把字符串中内容当作语句直接执行print(eval(123)) 6 eval会执行任意代码不要对不安全输入使用eval成员判断1. in 判断子串str1 in str2str1为str2子串则返回True否则返回False2. 字符类型判断常用几种str.isalnum()str非空且所有字符都是字母或数字(alpha或num写成alnum)返回Truestr.isdigit()str非空且所有字符都是数字返回Truestr.isalpha()str非空且所有字符都是字母则返回True