[TOC] >[success] # 字符串类型 ~~~ 1.str,python当中凡是用引号引起来的都是字符串,用三引号引起来的是换行字符串 2.可相加:字符串的拼接。 3.可相乘:str * int ~~~ >[danger] ##### 案例 ~~~ name = "wang" names = """ wang, chun """ name_add = "wang"+"chun" name_copy = "wang" * 3 print(name) print(names) print(name_add) print(name_copy) 打印结果: wang wang, chun wangchun wangwangwang ~~~ >[success] # 字符串方法 ~~~ 1.capitalize 首字母大写 2.upper 全部大写 3.lower 全部小写 4.swapcase翻转大小写 5.title 隔开的首字母大写 6.startswith 判断以什么开头三个参数 7.endswith判断以什么结尾三个参数 8.find 找到字符串中位置(三个参数可以指定位置) 9.index 找到字符串中位置(和find不同找不到报错) 10.sprit 去空格 11.count 计数出现的频率 12.split 切割字符串 13.format字符格式化输出 14.replace 替换 15.长度len() ~~~ >[danger] ##### capitalize 首字母大写 ~~~python s = "this Is Capitalize Function" print(s.capitalize()) 打印结果: This is capitalize function ~~~ >[danger] ##### upper 全部大写 ~~~ s = "this Is Capitalize Function" print(s.upper()) 打印结果: THIS IS CAPITALIZE FUNCTION ~~~ >[danger] ##### lower 全部小写 ~~~ s = "THIS IS CAPITALIZE FUNCTION" print(s.lower()) 打印结果: this is capitalize function ~~~ >[danger] ##### casefold 把所有变小写 ~~~ # 和lower 的区别,lower只能针对英文ASCII码变小写,casefold可以针对任何语言 s = "THIS IS CAPITALIZE FUNCTION" print(s.casefold()) 打印结果: this is capitalize function ~~~ >[danger] ##### swapcase翻转大小写 ~~~ s = "this Is Capitalize Function" print(s.swapcase()) 打印结果: THIS iS cAPITALIZE fUNCTION ~~~ >[danger] ##### title 隔开的首字母大写 ~~~ python # 空格隔开的字母首位大写 s = "this*is1capitalize function" print(s.title()) 打印结果: This*Is1Capitalize Function ~~~ >[danger] ##### istitle 判断是否为标题就是每个首字母是否大写 ~~~ test = "Return True if all cased characters in S are uppercase and there is" v = test.istitle() print(v) 打印结果: False ~~~ >[danger] ##### startswith 判断以什么开头三个参数 ~~~ 1.判断以什么开头,是返回True 否返回Flase 2.指定位置,判断开头位置 ~~~ ~~~ s = "this Is Capitalize Function" print(s.startswith('th')) print(s.startswith('l')) print(s.startswith('Ca', 8, 11)) 打印结果: True False True ~~~ >[danger] ##### endswith判断以什么结尾三个参数 ~~~ 1.判断以什么结尾,是返回True 否返回Flase 2.指定位置,判断结尾开始位置,末尾从1开始 ~~~ ~~~ s = "this Is Capitalize Function" print(s.endswith('on')) print(s.endswith('l')) print(s.endswith('tio', 4, -1)) 打印结果: True False True ~~~ >[danger] ##### find 找到字符串中位置(三个参数可以指定位置) ~~~ 1.查询字符串的位置,查到返回第一个查询到位置数字,不存在返回-1 2.默认从左开始查询,使用rfind从右开始查询 ~~~ ~~~ s = "this Is Capitalize Function" print(s.find('s')) print(s.find('1')) 打印结果: 3 -1 ~~~ >[danger] ##### index 找到字符串中位置(和find不同找不到报错) ~~~ 1.默认从右开始查询,使用rindex从右开始查询 ~~~ ~~~ s = "this Is Capitalize Function" print(s.index('s')) print(s.index('1')) 打印结果: 3 报错信息 ~~~ >[danger] ##### sprit 去空格 ~~~ 1.只能去掉前后的空格,或者前后的指定字符串 2.可以使用lstrip/rstrip 去掉左右的信息 3.默认是去掉一切前后产生空格的例如:还能去掉\n和\t ~~~ ~~~ s = " this " print(s.strip(" t")) print(s.strip()) print(s.rstrip()) print(s.lstrip()) 打印结果: his this this this ~~~ >[danger] ##### count 计数出现的频率 ~~~ s = "this t " print(s.count("t")) 打印结果: 2 ~~~ >[danger] ##### split 切割字符串 ~~~ s = "this" print(s.split("t")) 打印结果: ['', 'his'] ~~~ >[danger] ##### 换行分割 ~~~ # 只能填写参数True/Flase,分割的效果是是否保留换行 test = "asdfadfasdf\nasdfasdf\nadfasdf" v = test.splitlines(True) v1 = test.splitlines(False) print(v, v1) 打印结果: ['asdfadfasdf\n', 'asdfasdf\n', 'adfasdf'] ['asdfadfasdf', 'asdfasdf', 'adfasdf'] ~~~ >[danger] ##### partition 分割字符串 ~~~ # 只能分割一次 且包含分割对象 test = "testasdsddfg" v = test.partition('s') print(v) v = test.rpartition('s') print(v) 打印结果: ('te', 's', 'tasdsddfg') ~~~ >[danger] ##### format字符格式化输出 ~~~ s = '我叫{},今年{},爱好{},再说一下我叫{}'.format('太白',36,'girl','太白') print(s) name = input('请输入名字:') s = '我叫{0},今年{1},爱好{2},再说一下我叫{0}'.format(name,36,'girl') print(s) name = input('请输入名字:') s = '我叫{name},今年{age},爱好{hobby},再说一下我叫{name}'.format(age=18,name=name,hobby='girl') print(s) 打印结果: 我叫太白,今年36,爱好girl,再说一下我叫太白 请输入名字:11 我叫11,今年36,爱好girl,再说一下我叫11 请输入名字:22 我叫22,今年18,爱好girl,再说一下我叫22 ~~~ >[danger] ##### replace 替换 ~~~ 使用 replace() 函数可以进行简单的子串替换。用于替换的新子串,以及需 要替换多少处。最后一个参数如果省略则默认只替换全部例: ~~~ ~~~ A = "我想把,逗号,变成句号" print(A.replace(',','。')) print(A.replace(',','。',1)) 打印结果: 我想把。逗号。变成句号 我想把。逗号,变成句号 ~~~ >[danger] ##### 长度len() ~~~ len()获取长度 为了知道字符串,数组,字典等长度,可以使用len()方法例: A = "一二三四五六七" print(len(A)) 打印结果: 7 ~~~ >[danger] ##### 一些对齐操作center()/ljust()/rjust() 居中,左对齐,右对齐 ~~~ center()/ljust()/rjust() 居中,左对齐,右对齐 ~~~ >[danger] ##### 判断字符串组成 ~~~ name='wang123' print(name.isalnum()) #字符串由字母或数字组成 print(name.isalpha()) #字符串只由字母组成 print(name.isdigit()) #字符串只由数字组成 ~~~ >[danger] ##### 常用判断数字 isdecimal ~~~ test = "二" # 1,② # 只能是十进制的字符串 例如10 ,负数不可以的 v1 = test.isdecimal() # 跟上面类似,但支持② v2 = test.isdigit() # 上面的都支持 额外还支持汉字 v3 = test.isnumeric() print(v1,v2,v3) 打印结果: False False True ~~~ >[danger] 判断字符串中是否有制表和换行 isprintable ~~~ # 有就flase 没有就true test = "oiuas\tdfkj" v = test.isprintable() print(v) 打印结果: False ~~~ >[danger] ##### 判断是否都是空格 isspace ~~~ test = " " v = test.isspace() print(v) 打印结果: True ~~~ >[danger] ##### maketrans -- 替换 ~~~ v = "我是你好大家好" m = str.maketrans("我你", "15") new_v = v.translate(m) print(new_v) 打印结果: 1是5好大家好 ~~~ >[success] # % 用百分号占位 ~~~ 1.%s 表示字符串 2.%d 表示数字 3.%% 双百分号可以正常输出一个单%号 ~~~ >[danger] ##### 案例 ~~~ name = input('请输入姓名') age = int(input('请输入年龄')) height = input('请输入身高') msg = "我叫%s,今年%d 身高 %s 输出一个百分号 %%" %(name,age,height) print(msg) 打印结果: 我叫wnag,今年12 身高 176 输出一个百分号 % ~~~