Python - 字符串常用函数 - 进阶之路 - Day02

Python 字符串

字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。

创建字符串很简单,只要为变量分配一个值即可。

字符串处理常用函数

1. len()函数

用len( )函数计算字符串的长度,也可以用于统计列表和字典的长度

# len() 计算字符串长度,空格也是有长度的
msg = "   abc"
students = ['小明','小红','小刚']
scores = {'小明':95,'小红':90,'小刚':90}

# 统计字符串的长度
print(len(msg))

# 统计列表的长度
print(len(students))

# 统计字典的长度
print(len(scores))

运行结果:

6
3
3

2. strip()函数

该函数主要用于去除字符串两头的空格和换行符,对于字符串中间的则没有效果。

也可以指定字符串,就会去掉指定的字符串。

msg = "   ab   c"

# msg.strip()  默认去掉字符串两边的空格和换行符
print(msg.strip())
print(msg)


# strip() 函数指定了字符串,就会去掉指定的字符串
msg4 = "a.jpg"
print(msg4.strip(".jpg"))

运行结果:从结果看,使用了 strip 函数把字符串前边的空格去掉了,但是中间的空格没有去掉

ab   c
   ab   c
a

3. center() 函数

用 center()函数将字符串以指定宽度居中,其余部分以特定字符填充,

格式为: center(指定长度,‘特定字符’)

word7 = "欢迎光临"
print(word7.center(30, "-")) 

运行结果:

-------------欢迎光临-------------

4. lstrip() 和 rstrip() 函数

lstrip()是把字符串左边的空格去掉,rstrip()是把字符串右边的空格去掉

msg5 = "  sfgjsfd   "
print(msg5.lstrip().center(20, "*"))  # 去掉左边的空格和换行符
print(msg5.rstrip().center(20, "*"))  # 去掉右边的空格和换行符

运行结果:

*****sfgjsfd   *****
*****  sfgjsfd******

5. count()函数

找到指定字符串出现的次数

words = "admi  nasdfadjfadjfHKHDLF"
print(words.count("a"))  # 找字符串出现的次数

运行结果:

4

6. find()函数

找到指定字符串的下标,找不到指定的字符串时会返回 -1

words = "admi  nasdfadjfadjfHKHDLF"

# 寻找字符串的下标
print(words.find("a"))  

# 可以定义从哪里开始,哪里结束,找对应的字符串的下标
print(words.find("d", 5, 11))  

# 查询不到字符串时  find 和 index 的区别
print(words.find("p"))  # 寻找不存在的字符串会返回 -1
print(words.index("p"))  # 寻找不存在字符串的时候会报错: substring not found

运行结果:

0
9
-1
Traceback (most recent call last):
  File "/Users/zhulixiang/Downloads/pythonProject/thz/Day02/字符串方法.py", line 39, in <module>
    print(words.index("p"))  # 寻找不存在字符串的时候会报错: substring not found
ValueError: substring not found

7. index()函数

找到指定字符串的下标,如果指定的字符串不存在时会报错: substring not found

words = "admi  nasdfadjfadjfHKHDLF"

print(words.index("m"))  # 寻找字符串的下标

# 查询不到字符串时  find 和 index 的区别
print(words.find("p"))  # 寻找不存在的字符串会返回 -1
print(words.index("p"))  # 寻找不存在字符串的时候会报错: substring not found

运行结果:

2
-1
Traceback (most recent call last):
  File "/Users/zhulixiang/Downloads/pythonProject/thz/Day02/字符串方法.py", line 39, in <module>
    print(words.index("p"))  # 寻找不存在字符串的时候会报错: substring not found
ValueError: substring not found

8. replace()函数

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

str.replace(old, new, max)
  • old -- 将被替换的子字符串。
  • new -- 新字符串,用于替换old子字符串。
  • max -- 可选字符串, 替换不超过 max 次, 默认是全部替换
words = "admi  nasdfadjfadjfHKHDLF"

# 替换字符串,且可以定义替换的次数
print(words.replace("ad", "Ad", 3))

# 替换字符串中间的空格,指定替换次数为 1 ,不指定默认全部替换
print(words.replace(" ", "", 1))  

运行结果:

Admi  nasdfAdjfAdjfHKHDLF
admi nasdfadjfadjfHKHDLF

9. upper()和 lower()

upper() 方法将字符串中的小写字母转为大写字母

lower() 方法将字符串中的大写字母转为小写字母

words = "admi  nasdfadjfadjfHKHDLF"

# 将字符串转换成大写
print(words.upper())  

# 将字符串转换成小写
print(words.lower())  

运行结果:

ADMI  NASDFADJFADJFHKHDLF
admi  nasdfadjfadjfhkhdlf

10. sdigit() 、isupper() 和 islower() 函数

isdigit() 方法检测字符串是否只由数字组成

isupper() 方法检测字符串是否都是大写字母

islower() 方法检测字符串是否都是小写字母

word = "123"
word1 = "adsfakdHGJJKK"

# 判断字符串里边是否都是整数
print(word.isdigit())  

# 判断字符串是不是都是大写字母
print(word1.isupper())  

# 判断字符串是不是都是小写字母
print(word1.islower())  

运行结果:

True
False
False

11. endswith()和 startswith()函数

endswith() 方法用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回 True,否则返回 False

startswith() 方法用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False

word3 = "123.jpg"
print(word3.endswith(".jpg"))  # 判断字符串是否以 .jpg 结尾

word4 = "189889992"
print(word4.startswith("1"))  # 判断字符串是否以 1 开头

运行结果:

True
True

12. isspace()函数

Python isspace() 方法检测字符串是否只由空白字符组成,如果字符串中只包含空格,则返回 True,否则返回 False

word5 = "    "
word6 = "my car"

# 判断字符串是否全部是空格,如果是返回 True,否则返回 False
print(word5.isspace())
print(word6.isspace())

运行结果:

True
False

13. title() 函数、 capitalize() 函数

Python title() 方法返回"标题化"的字符串,就是说所有单词的首个字母转化为大写,其余字母均为小写

Python capitalize()将字符串的第一个字母变成大写,其他字母变小写

word6 = "my car"

# 将字符串中每个单词的首字母大写
print(word6.title())  

# 将字符串的首字母大写
print(word6.capitalize())  

运行结果:

My Car
My car

14. isalnum() 函数、isalpha() 函数

isalnum() 方法检测字符串是否由字母、数字和文字组成,如果是返回 True,否则返回 False

isalpha() 方法检测字符串是否只由字母或文字组成,如果是返回 True,否则返回 False

word8 = "asdfjads欢迎光临872933923"

# 字符串如果是字母、数字、中文就返回 True,包含了特殊字符就返回 False
print(word8.isalnum())  

# 字符串如果是字母、中文就返回 True
print(word8.isalpha())

运行结果:

True
False

15. zfill() 函数

zfill() 方法返回指定长度的字符串,原字符串右对齐,前面填充0

word9 = "12"

# 指定字符串的长度,如果变量赋值的字符串长度不满足时在前边补 0
print(word9.zfill(5))  

运行结果:

00012

16. split() 函数

split() 通过指定分隔符对字符串进行切片,如果第二个参数 num 有指定值,则分割为 num+1 个子字符串

word10 = "admin,dev,test1,abc"
word11 = ",dev,test1,abc"

# 分割字符串,通过字符串中特殊符号去分割,然后返回一个 list,默认是按照 空格 去分
print(word10.split(",")) 

# 如果要分割的符号不存在,只会返回一个 list 
print(word10.split("."))  

# 如果字符串一开始就是一个分割符,那么返回的 list 中就会有一个空的元素
print(word11.split(","))  

运行结果:

['admin', 'dev', 'test1', 'abc']
['admin,dev,test1,abc']
['', 'dev', 'test1', 'abc']

17. str() 函数

str() 函数将对象转化为适于人阅读的形式

word12 = ['admin', 'dev', 'test', 'adb']
words1 = 12

# 如果直接转 list 的类型,就会把整个 list 包括 [] 当成字符串的一部分
print(str(word12))  

# 将一个 int 类型转换成 str
print(type(str(words1)))

运行结果:

['admin', 'dev', 'test', 'adb']
<class 'str'>

18. join() 函数

join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串

word12 = ['admin', 'dev', 'test', 'adb']
word13 = ['admin', 'dev', 'test', 'adb', 189]

# 直接使用 join 将 list 的每个元素连接在一起
print("".join(word12))  

# 使用“,” join 将 list 的每个元素连接在一起
print(",".join(word12))

# 如果使用 join 必须保证 list 里边的每个元素都是字符串,否则会报错
print("".join(word13))  

运行结果:

admindevtestadb
admin,dev,test,adb
Traceback (most recent call last):
  File "/Users/zhulixiang/Downloads/pythonProject/thz/Day02/字符串方法.py", line 99, in <module>
    print("".join(word13))  # 如果使用 join 必须保证 list 里边的每个元素都是字符串,否则会报错
TypeError: sequence item 4: expected str instance, int found

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值