python之字符串常用的方法

时间:2022-01-25 05:50:42

1. 去掉空格或换行符

s='. hello .world .\n'
new_s = s.strip()#默认去掉字符串前后的空格和换行符
new_s = s.strip('.')#可传参去掉字符串前后指定的参数
print(new_s)
print(s.rstrip()) #去掉右字符串后的空格和换行符
print(s.lstrip()) #去掉左字符串前的空格和换行符 输出结果如下:
hello .world . . hello .world .
. hello .world . ==========================

2. 输出指定字符串的出现次数

print(s.count('l')) #

3. 找字符串的下标
区别:index查找不存在的字符串时会报错;find会返回-1,不影响程序运行;一般用find!=-1或者find>-1来作为判断条件。

print(s.find('l'))   #
print(s.index('l')) #4 如查找不存的字符串会报错:ValueError: substring not found

4. 替换字符串:Python replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。

print(s.replace('l','L')) #将字符串中所有小写l替换成大写L,输出:. heLLo .worLd .
print(s.replace('l','L',2)) #将字符串中前2个小写l替换成大写L,输出:. heLLo .world .

5. 将字符串全部转换成大写或小写,lower()方法和upper()方法改变字符串后将改变的结果返回,但是原本的字符串并不会改变。

print(s.upper()) #将字符串全部转换成大写,输出:. HELLO .WORLD .
print(s.lower()) #将字符串全部转换成小写,输出:. hello .world .

5-1: 大小写互换

str='I love yOU'
print(str.swapcase()) #输出
# i LOVE You

6. 判断字符串是否都是大写或小写,返回布尔值类型

# 返回True 或者 False
print(s.isupper())
print(s.islower())

7. 首字母大写,注意,第一个字符必须是字母才生效

s='hello .world .\n'
print(s.capitalize()) #输出:Hello .world .

8. 检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写。

#返回True 或者 False
print(s.istitle())

9.  判断字符串是否以某个字符开始、结束,返回布尔值类型。可运用于如,判断用户上传的图片格式是否以.png结束,格式是否正确

# 返回True 或者 False
print(s.startswith('h'))
print(s.endswith('\n'))

10. 判断字符串是否为纯数字且至少有一个字符,返回布尔值,可用于输入框文本类型的校验

#返回True 或者 False
s1='123test'
print(s1.isdigit())

11. 判断字符串中是否都是字母或汉字且至少有一个字符,不能有数字和特殊字符,返回布尔值

#返回True 或者False
s2='我test'
print(s2.isalpha())

12. 判断字符串里只要没有特殊字符且至少有一个字符就返回true

#返回True 或者 False
s2='我test123'
print(s2.isalnum())

13. 把字符串放中间,不够的可用后面指定的字符串补齐

# 可指定需要用什么字符补齐,也可留空,显示为空格
s1='123test'
print(s1.center(30,'-')) 输出:
-----------123test------------

14. 判断字符串是否都是空格组成且至少有一个字符(所以不能用于验证未输入、留空),可用于只输入了空格的校验

#返回True 或者 False
print(s.isspace())

如想将留空和只输入空格都当做空来校验,可用strip和空,如:

#用.strip()给输入的用户名去掉空格和换行符
username=input('请输入您的登录用户名:').strip()
#判断用户名是否留空
if username == '':
print('用户名不能为空')

15. 判断是否是数字,字母,下划线开头,是否是标准的变量名,是否尊循了变量命名规范,不能以数字和特殊字符开头,返回布尔

#返回True 或者False
s2='我test123'
print(s2.isidentifier())

16. fomat:不用按字符串顺序去一一对应的录入数据,数据库,不同于%s得一一对应

s1 = 'insert into user-base VALUE ({username},{password},{addr});'
print(s1.format(addr='北京',password=159,username='abc')) 输出:
insert into user-base VALUE (abc,159,北京);

17. zfill(): 补0

s2=''
print(s2.zfill(3)) #输出:001

18. split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则仅分隔 num 个子字符串,num指分割次数

s='user1,user2,user3,user4,user5,user6,user7'
print(s.split(','))#按照某个字符来分割一个字符串,返回一个list #输出:
['user1', 'user2', 'user3', 'user4', 'user5', 'user6', 'user7'] print(s.split())#什么都不传的话按照空格来分割字符串,没有空格就整体是一个元素
#输出:
['user1,user2,user3,user4,user5,user6,user7']
str = "Line1-abcdef \nLine2-abc \nLine4-abcd"

print(str.split( ))
#输出:['Line1-abcdef', 'Line2-abc', 'Line4-abcd'] print(str.split(' ', 1))
#输出:['Line1-abcdef', '\nLine2-abc \nLine4-abcd']
str = 'hello,world,hello'

# 默认以空格为分割
print(str.split()) # ['hello,world,hello'] 单词之间没有空格,所以所有的内容为一个元素
# 以o为分割
print(str.split('o')) # ['hell', ',w', 'rld,hell', '']
# 以逗号分割
print(str.split(',')) # ['hello', 'world', 'hello']

18-1: splitlines() 以换行为分割,此方法不能去掉空格,只能去换行

String.splitlines()

str = 'hello,\nworld,\nhello'

print(str.splitlines()) # ['hello,', 'world,', 'hello']

19. join()方法连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串

cars=['BMW','BEN','ABC']
res=','.join(cars)#以某个字符(随意指定)把list里面的元素连起来,把list变成字符串
print(res)
#输出:BMW,BEN,ABC cars_str= str(cars)
print('第一个元素是:',cars_str[0])
#也可以变成字符串,但是直接从在[开始取值
#输出:
第一个元素是: [