Python 字符串操作和函数

字符串的相关操作

(1) 字符串的拼接 +

str1 = "我爱你"
str2 = "亲爱的祖国"
strvar = str1 + str2
strvar = str1 + "," +str2
print(strvar)

(2) 字符串的重复 *

strvar = "爱我中华\n"
res = strvar * 3
print(res)

(3) 字符串的跨行拼接

strvar = "sdfsdfssdfsdjfsjkdfsaudfuiousoadfjklsadf8s98adfsahdfsajkdfhsjkadfh" \
"111222333444"
print(strvar)

(4)字符串的索引

#          0 1 2 3 4 5 6 7 8 9    正向索引
strvar = "站起来的人一共是6个"
#        -10-9-8-7-6-5-4-3-2-1    逆向索引
print(strvar[-6])

(5)字符串的切片: 切片就是截取

"""
语法 => 字符串[::]  完整格式:[开始索引:结束索引:间隔值]
    (1)[开始索引:]  从开始索引截取到字符串的最后
    (2)[:结束索引]  从开头截取到结束索引之前(结束索引-1)
    (3)[开始索引:结束索引]  从开始索引截取到结束索引之前(结束索引-1)
    (4)[开始索引:结束索引:间隔值]  从开始索引截取到结束索引之前按照指定的间隔截取字符
    (5)[:]或[::]  截取所有字符串
"""

5-(1)[开始索引:] 从开始索引截取到字符串的最后

strvar = "好看的皮囊千篇一律,有趣的灵魂200多斤"
res = strvar[5:]
print(res)

5-(2)[:结束索引] 从开头截取到结束索引之前(结束索引-1)

最大值取不到,取到它之前的那个值
strvar = "好看的皮囊千篇一律,有趣的灵魂200多斤"
res = strvar[:9] # 8
print(res)

5-(3)[开始索引:结束索引] 从开始索引截取到结束索引之前(结束索引-1)

strvar = "好看的皮囊千篇一律,有趣的灵魂200多斤"
res = strvar[13:15]
print(res)
res = strvar[-7:-5]
print(res)

5-(4)[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取字符

strvar = "好看的皮囊千篇一律,有趣的灵魂200多斤"
res = strvar[1:15:2]
# 1 3 5 7 9 11 13 
print(res) #看皮千一,趣灵
res = strvar[::-1] #从开头到结束;
print(res)
# -1 -2 -3 -4 -5 -6 -7 -8 -9 ...

5-(5)[:]或[::] 截取所有字符串

res = strvar[:]
res = strvar[::]
print(res)

字符串相关函数

1)capitalize 字符串首字母大写

strvar = "happy new year"
res = strvar.capitalize()
print(res)

2)title 每个单词的首字母大写

strvar = "happy new year"
# 非字母隔开的单词,首字符大写
strvar = "happy1new*year"
res = strvar.title()
print(res)

3)upper 将所有字母变成大写

strvar = " aaa BBB cCD"
res = strvar.upper()
print(res)

4)lower 将所有字母变成小写

strvar = " aaa BBB cCD"
res = strvar.lower()
print(res)

5)swapcase 大小写互换

strvar = " aaa BBB cCD"
res = strvar.swapcase()
print(res)

6)len 计算字符串的长度

strvar = " aaa BBB cCD"
res = len(strvar)
print(res)

7)count 统计字符串中某个元素的数量

strvar = "我爱你亲爱的菇凉"
res = strvar.count("爱")
print(res)

8)find 查找某个字符串第一次出现的索引位置

find("字符",start,end) end最大值取不到,取到它之前的那个数.
strvar = "oh Father this is My Favorite boy"
res = strvar.find("My")
print(res)
# 如果返回-1 , 代表找不到
res = strvar.find("s",0,14)
print(res)
res = strvar.find("b",-5,-1)
print(res)


# *index 与 find 功能相同 find找不到返回-1,index找不到数据直接报错
# res = strvar.index("b",0,3) error 
# print(res)

9)startswith 判断是否以某个字符或字符串为开头

'''startswith("字符串",start,end)'''
strvar = "oh Father this is My Favorite boy"
res = strvar.startswith("ogg")
print(res)
res = strvar.startswith("Father",3,20)
print(res)

10)endswith 判断是否以某个字符或字符串结尾

'''endswith("字符串",start,end)'''
res = strvar.endswith("boy",-3)
res = strvar.endswith("rite",-12,-4)
print(res)

11)isupper 判断字符串是否都是大写字母

strvar = "GOOD GOOD STUDY"
res = strvar.isupper()
print(res)

12)islower 判断字符串是否都是小写字母

strvar = "day day up"
res = strvar.islower()
print(res)

13)isalpha 判断字符串是否由字母和文字组成

strvar = "sdfsdf中文121343"
res = strvar.isalpha()
print(res)

14)isdigit 检测字符串数是数字组成 接受二进制字节流

strvar = "121212uiu"
res = strvar.isdigit()
print(res)

"""
二进制字节流( bytes ) b开头 b"323" 但是有一定的局限性 只能是ascii编码;
功能用途: 用来传输或者存储用的


字符串:有一个个字符组成
字节流:有一个个字节组成

encode decode 两个函数来对中文进行二进制字节流的转换;
"""
strvar = b"@123"
# strvar = b"你好" b开头的字符串,不能转换中文
print(strvar,type(strvar))

strvar = b"9998877"
res = strvar.isdigit()
print(res)

15)isdecimal 检测字符串是否以数字组成 必须是纯数字

strvar = "999887789"
res = strvar.isdecimal()
print(res)

16)split 按某字符将字符串分割成列表(默认字符是空格)

strvar = "you can you up no you no bb"
lst = strvar.split() #默认分隔符是空格
print(lst) 

strvar = "you&can&you&up&no&you&no&bb"
lst = strvar.split("&")
# 可以选择分割的次数;
lst = strvar.split("&",3)
print(lst)

# r => right
strvar = "you&can&you&up&no&you&no&bb"
lst = strvar.rsplit("&")
lst = strvar.rsplit("&",2)
print(lst)

17)''.join 按某字符将列表拼接成字符串(容器类型都可)

lst = ['you', 'can', 'you', 'up', 'no', 'you', 'no', 'bb']
# join 前面是以什么样的符号进行拼接字符串;
strvar = '^'.join(lst)
print(strvar)

18)center 填充字符串,原字符居中 (默认填充空格)

strvar = "真好"
# 10这个数字代表的是总长度 元字符长度 + 填充的长度= 10
res = strvar.center(10)
res = strvar.center(10,"@")
print(res)

19)strip 默认去掉首尾两边的空白符 (\r \n \t 空格 )

strvar = "   大家好  ?     "
res = strvar.strip()
print(res)

strvar = "@@学习@"
res = strvar.strip("@")
print(res)

20)replace() 替换字符串

strvar = "可爱的小狼狗喜欢吃肉,有没有,有没有,还有没有"
res = strvar.replace("有没有","真没有")
# 可以选择替换的次数
res = strvar.replace("有没有","真没有",2)
print(res)

总结:

*capitalize 字符串首字母大写 
*title 每个单词的首字母大写 
*upper 将所有字母变成大写
*lower 将所有字母变成小写 
*swapcase 大小写互换 
*len 计算字符串的长度 
*count 统计字符串中某个元素的数量 
*find 查找某个字符串第一次出现的索引位置 
*index 与 find 功能相同 find找不到返回-1,index找不到数据直接报错
*startswith 判断是否以某个字符或字符串为开头 
*endswith 判断是否以某个字符或字符串结尾 
*isupper 判断字符串是否都是大写字母 
*islower 判断字符串是否都是小写字母 
#istitle 判断字符串是否每个单词都首字母大写 
#isalnum 判断字符串是否是由数字、字母、汉字组成 
*isalpha 判断字符串是否由字母和文字组成 
*isdigit 检测字符串数是数字组成 接受二进制字节流 
*isdecimal 检测字符串是否以数字组成  必须是纯数字
#isnumeric 检测字符串是否以数字组成 接受中文"四"
#isspace   判断字符串是否由空白符组成
*split 按某字符将字符串分割成列表(默认字符是空格)
*join  按某字符将列表拼接成字符串(容器类型都可)
#splitlines 按换行来进行切分(\n)
#zfill  填充字符串(默认填充0,原字符串右对齐)
#ljust  填充字符串,原字符居左 (默认填充空格)
#rjust  填充字符串,原字符居右 (默认填充空格)
*center 填充字符串,原字符居中 (默认填充空格)
*strip  默认去掉首尾两边的空白符 
#rstrip 去掉右边某个字符 
#lstrip 去掉左边某个字符 
*replace()
    功能:   把字符串的旧字符换成新字符
    格式:   字符串.replace('旧字符','新字符'[, 限制替换的次数])
    返回值: 替换之后的字符串

#maketrans translate 是一对
maketrans()
    功能:   制作用于字符串替换的映射表
    格式:   字符串.maketrans('查找字符','替换字符')两个字符必须长度相等
    返回值: 字典
translate()
    功能:   进行字符串替换操作
    格式:   字符串.translate(maketrans返回的字典)
    返回值: 替换之后的字符串

转载于:https://www.cnblogs.com/CrownYP/p/11342679.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值