Python_3 字符串常用方法、字符串格式化和列表
一、查缺补漏
- 在字符串运算中拼接时只能是针对字符串和字符串,其他类型不可以
- 在pycharm中想要查看字符串函数的用法进入builtins.py文件,要按住Ctrl点击函数
二、字符串常用方法
- 判断相关(返回布尔值) 如:test_1="python"
- string.isupper():判断是否都是大写 print(str_1.isupper()) 结果:False
- string.islower():判断是否都是小写 print(str_1.islower()) 结果:True
- string.isalnum():判断是否都是字母或者数字 print(str_1.isalnum()) 结果:True
- string.isalpha():判断是否是字母或者汉字组成 print(str_1.isalpha()) 结果:True
- string.isdiglt():判断是否都是数字(数据库查询做断言的时候用到) print(str_1.isdigit()) 结果:False
- string.startwith():判断是否是以某个字符开头 print(str_1.startswith('h')) 结果:False
- string.istitle():判断每个单词是否是首字母大写 print(str_1.istitle()) 结果:False
- string.isspace():判断字符串是否只有空格,多个空格也可判断为True print(str_1.isspace()) 结果:False
- 字符串拆分+字符串替换
- 使用场景:拆分主要用于面试,按规则进行字符的拆分;替换用于自动化的参数替换,请求地址的参数替换
- 替换 str.replace(old,new,count)
str:要做替换的串
old:需要替换的字符
new:替换后的字符
count:替换个数,不写默认全替
列:str_1="python hello" print(str_1.replace('o','h',1)) 结果为:pythhn hello
3. 拆分 str.split(sep,maxsplit) 拆分时默认去掉拆分字符
sep:拆分标记字符,会丢弃拆分标记字符,默认是空格进行拆分
maxsplit:拆分的限制,可以控制拆分的次数,当为-1时全拆不做限制(默认),当为0时不拆
列:str="python hello" print(str.split('h',1)) 结果:['pyt', 'on hello']
4. 按照换行符(\n)和回车符(\r)拆分字符串 str.splitlines(keepends=True/False) ---读取文件时使用
keepends:设置是否保留拆分字符,当为True时保留拆分字符,当为Fasle时去掉拆分字符,默认为Fasle
5. 字符串链接符 拼接符.join(str)
拼接符:指用于链接的字符比如说'-'或' '
str:需要拼接的串
列:str="hellopython" print('-'.join(str)) 结果为:h-e-l-l-o-p-y-t-h-o-n
6. 删除字符串前后的空格或者换行符,中间的内容不会删除 str.strip(参数)
str:需要删除前后的串
参数:想要删掉的内容,不传参数默认删除空格或者换行符
列:str_1=" \nhello python " print(str_1.strip()) 结果为:hello python
三、字符串格式化
- %
- %s:字符串占位符,如果不是str类型,会发生强制类型转换,python会强制将你的int类型转换成str类型
列:name="alisa" age=10 print("my name is %s age is %s"%(name,age))
结果为:my name is alisa age is 10
- %d:数值类型占位符 i. 只能传数值类型,不然会报错
- ii. 传入float类型会去掉小数部分值保留整数,因为发生了强制类型转换,直接将小数转换成了int类型,小数就抹掉了
列:name="alisa" age=10 print("my name is %s age is %d "%(name,age))
结果为:my name is alisa age is 10
- %f:精度处理,默认保留6位小数,可以自定义保留几位小数,在%和f之间加上(.数字),在计算数据和对账中用到
列:phone=1000 price="thisphoneis%f"%(phone) price2="thisphoneis%.2f"%(phone) print(price2)
结果为:this phone is 1000.00
- format(支持所有的类型)列:name="alisa" age=10
- 按顺序取值:{}收到的内容按照format后面的顺序一致
test="my name is {} age is {}".format(name,age) print(test) 结果:my name is alisa age is 10
- 按索引取值:format中按0123…排序,在{}中放入对应索引
test="my name is {1} age is {0}".format(age,name) print(test) 结果:my name is alisa age is 10
- 关键字取值:直接在format后赋值,在{}中填写被赋值的串名
test="my name is {name} age is {age}".format(age=10,name="alisa") print(test)
结果:my name is alisa age is 10
- f 表达式:直接在{}中放入要用到的被赋值串名,在赋值内容前加f
列:name="alisa" age=10 test=f"my name is {name} age is {age}" print(test)
结果:my name is alisa age is 10
四、列表
- 列表的特性
- 有序
- 可变
- 列表成员可以是任意类型的数据,不需要一致
- 可以通过索引获取
- 元素可以重复
- 列表的操作
- 创建(增) 如:list=[1,2,3,4,5]
- 删除(删)
- 修改(改)
- 访问(查) i. 通过索引获取对应元素 list[index] index:索引值
列:list=[1,2,"test",3,3,4,4,5,6,7] print(list[2]) 结果:test
ii. 通过元素value获取索引值 list.index(元素) index:函数用于调用()内的元素获得索引值
如果有多个相同的元素,返回找到的第一个元素的索引值
列:list=[1,2,"test",3,3,4,4,5,6,7] print(list.index("test")) 结果:2
iii. 切片(详情请参考python_2)
iv. 统计某个元素出现的次数 list.count(元素) count:函数用于统计()内元素的个数
列:list=[1,2,"test",3,3,4,4,5,6,7] print(list.count(3)) 结果:2
本文来自博客园,作者:Alisa-sweet,转载请注明原文链接:https://www.cnblogs.com/Alisa-sweet/p/14953341.html