7.19_python_lx_day7

一.字符串的相关操作

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

 (1)字符串的拼接 +

1 strvar = 'a' + 'b'
2 strvar +='c'
3 print(strvar)

(2)字符串的重复 *

1 strvar = 'abc' * 3
2 print(strvar)

(3)字符串跨行拼接

1 strvar = 'dlawjdla'
2 '多余的几行放在第二行进行显示'
3 print(strvar)

(4)字符串的索引

1 # 正向索引: 012
2 strvar =     'abc'
3 # 逆向索引 -3-2-1
4 res = strvar[2]

(5)字符串的切片:(切片 <=> 截取)

<1>[开始索引:]  从开始索引截取到字符串的最后

1 strvar = "国安,国安,北京国安"
2 res = strvar[6:]
3 print(res)

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

1 strvar = "国安,国安,北京国安"
2 res = strvar[:5]
3 print(res)

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

1 strvar = "国安,国安,北京国安"
2 res = strvar[3:5]
3 print(res)

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

1 strvar = "国安,国安,北京国安"
2 #正序
3 res = strvar[::2]# 0 2 4 6 8 10 12 ...
4 print(res)
5 #倒序
6 res = strvar[::-1]# -1 -2 -3 -4 -5 -6....
7 print(res)

<5>[:]或[::]  截取所有字符串

1 strvar = "国安,国安,北京国安"
2 res = strvar[:]
3 res = strvar[::]
4 print(res)

二.字符串的相关函数

(1)capitalize 字符串首字母大写

1 strvar =  'abc'
2 res = strvar.capitalize()
3 print(res)

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

1 strvar  = 'abc  bad,abd,ldajlw,iqow'
2 res = strvar.title()
3 print(res)

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

1 strvar = 'ANDldjaldlw,ldDD'
2 res = strvar.upper()
3 print(res) 

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

1 strvar = 'ADLAJD,dwajdl,ldajdlkDD'
2 res = strvar.lower()
3 print(res)

(5)swapcase 大小写互换 

1 strvar = 'ADCKdlaj,dajADLJA'
2 res = strvar.swapcase()
3 print(res)

(6)len 计算字符串的长度

1 strvar ='dawdl'
2 res = len(strvar)
3 print(res)

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

strvar = 'aaldjladaddjlk'
res = strvar.count('a')
print(res)

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

字符串.find("字符",开始索引,结束索引) 如果找不到直接返回-1

strvar = "oh Father this is my Favorate dog"
1
res = strvar.find("F") 2 res = strvar.find("F",4) 3 res = strvar.find("Fav",5,10) # 结束索引本身取不到,取到之前的那个值 4 print(res)

(9)index 与 find 功能相同 find找不到返回-1,index找不到数据直接报错

strvar = "oh Father this is my Favorate dog"

#res = strvar.index("Fav",5,10) error

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

1 strvar = "oh Father this is my Favorate dog"
2 res = strvar.endswith("dog")
3 res = strvar.endswith("rate",-12)
4 res = strvar.endswith("rate",-12,-4)
5 print(res)

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

1 strvar = "oh Father this is my Favorate dog"
2 res = strvar.endswith("dog")
3 res = strvar.endswith("rate",-12)
4 res = strvar.endswith("rate",-12,-4)
5 print(res)

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

1 strvar = "ABCD"
2 res = strvar.isupper()
3 print(res)

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

strvar = "abcdd12345"
res = strvar.islower()
print(res)

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

1 strvar = "12354" #True
2 strvar = "12354.8979112"
3 res = strvar.isdecimal()
4 print(res)

(15)填充字符串

ljust  填充字符串,原字符居左 (默认填充空格)

1 strvar = "abc"
2 res = strvar.ljust(10)
3 print(res)

rjust  填充字符串,原字符居右 (默认填充空格)

1 strvar = "abc"
2 res = strvar.rjust(10,"&") #原字符串长度 + 填充字符长度 = 10 ,默认填充空格
3 print(res)

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

1 strvar = "abc"
2 res = strvar.center(10,"#")
3 print(res)

(18)去掉字符串旁侧的空白符

strip  默认去掉首尾两边的空白符

1 strvar = "@@@@@    周杰伦           @@@@@"
2 res = strvar.strip()
3 res = strvar.strip("@") # 指定去掉的符号
4 print(res)

rstrip 去掉右边某个字符

1 strvar = "@@@@@    周杰伦           @@@@@"
2 res = strvar.rstrip("@")
3 print(res)

lstrip 去掉左边某个字符

1 strvar = "@@@@@    周杰伦           @@@@@"
2 res = strvar.rstrip("@")
3 print(res)

重要!!!

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

1 strvar = "you can you up no can no bb"
2 lst = strvar.split()
3 print(lst) #['you', 'can', 'you', 'up', 'no', 'can', 'no', 'bb']
4 strvar = "you-can-you-up-no-can-no-bb"
5 lst = strvar.split("-")   # 从左到右分隔  ['you', 'can', 'you', 'up', 'no', 'can', 'no', 'bb']
6 lst = strvar.rsplit("-",2)# 从右到左分隔,(可以指定分隔的次数)  ['you-can-you-up-no-can', 'no', 'bb']
7 print(lst)

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

lst = ['you', 'can', 'you', 'up', 'no', 'can', 'no', 'bb']
res = "".join(lst) #youcanyouupnocannobb
res = " ".join(lst) #you can you up no can no bb
res = "-".join(lst) #you-can-you-up-no-can-no-bb
print(res)

(21)replace 替换,把字符串的旧字符换成新字符

replace(要替换的字符,替换成什么,替换的次数)

1 strvar = "有没有,有没有,还有没有"
2 res = strvar.replace("有没有","真没有")#真没有,真没有,还真没有
3 res = strvar.replace("有没有","真没有",1)#真没有,有没有,还有没有
4 print(res)
三.字符串的格式化 format
传参方式
(1)顺序传参
1 strvar = '今天{}崩溃了,想{}'.format('','睡觉')
2 print(strvar)#今天我崩溃了,想睡觉
(2)索引传参
1 strvar = '人生{1},我亦{0}'.format('是行人','如逆旅')
2 print(strvar)# 人生如逆旅,我亦是行人
(3)关键字传参
1 strvar = '{name}买了{num}个开塞露'.format(name='刘子豪',num='5')
2 print(strvar)#刘子豪买了5个开塞露
(4)容器类型数据(列表或元祖)传参
1 strvar = '如果{z[2]},我也不知道{x[2]}'.format(z=['a','b','有一天'],x=('a','b','写什么'))
2 print(strvar)#如果有一天,我也不知道写什么
(5)format当中,不能使用逆向下标,不识别
1 strvar = '如果{z[-2]},我也不知道{x[-1]}'.format(z=['a','b','有一天'],x=('a','b','写什么'))# error 不能使用逆向下标

(6)如果容器是字典,直接写键值,不需要加上引号
1 strvar = "{a[b]}差点给{b[y]}打死".format(a = {'b':1,'c':2},b={'x':3,'y':4})
2 print(strvar)   #1差点给4打死
format的填充符号的使用( ^ > < )

^ 原字符串居中
> 原字符串居右
< 原字符串居左

例:

{who:*^10}
who : 关键字参数
* : 要填充的字符(默认填充空格)
^ : 原字符串居中
10 : 总长度 = 原字符串长度 + 填充字符长度

1 strvar = "{who:*^10}在{where:>>10},{do:!<10}".format(who="刘子豪",where="电影院",do="拉屎")
2 print(strvar) #***刘子豪****在>>>>>>>电影院,拉屎!!!!!!!!

format进制转换等特殊符号的使用( :d   :f    :s    :, )

(1):d 整型占位符 (要求类型必须是整型)

1 strvar = "刘子豪昨天买了{:d}个开塞露".format(100) # 100.5error
2 print(strvar)#刘子豪昨天买了100个开塞露

   2d 占用两位,不够两位拿空格来补,默认居右

strvar = "刘子豪昨天买了{:2d}个开塞露".format(3)
print(strvar)#刘子豪昨天买了 3个开塞露

    < > ^ 调整对应的位置

1 strvar = "刘子豪昨天买了{:<2d}个花露水".format(3)#刘子豪昨天买了3 个开塞露
2 strvar = "刘子豪昨天买了{:^3d}个花露水".format(3)#刘子豪昨天买了 3 个开塞露
3 print(strvar)

(2):f 浮点型占位符 (要求类型必须是浮点型)

1 strvar = "我毕业时,找工作的薪资是{:f}".format(2.5)
2 print(strvar )#我毕业时,找工作的薪资是2.500000

   :.2f 小数点保留2位

strvar = "我毕业时,找工作的薪资是{:.2f}".format(2.56789)
print(strvar)#我毕业时,找工作的薪资是2.57  (存在四舍五入)

(3):s 字符串占位符 (要求类型必须是浮点型)

1 strvar = "{:s}".format("今天天气不错,万里无云")
2 print(strvar)#今天天气不错,万里无云

(4):, 金钱占位符

1 strvar = "{:,}".format(123456789)
2 print(strvar)# 123,456,789 (每三位一个,)


原文地址:https://www.cnblogs.com/Magicianlx/p/13337949.html