python学习day7_字符串的相关函数

  • 字符串的相关操作
    • (1)字符串的拼接 +
    • (2)字符串的重复 *
    • (3)字符串跨行拼接 \
    • (4)字符串的索引(复习)
    • (5)字符串的切片:(截取)
  • 对字符串宝具
    • capitalize 使字符串首字母大写
    • title 使每个单词的首字母大写
    • upper 使所有字母变成大写
    • lower 使所有字母变成小写
    • swapcase 使字母大小写互换
    • len 计算并输出字符串的长度
    • count 统计字符串中某个元素的数量
    • find 查找某个字符串第一次出现的索引位置
    • index 与 find 功能相同
    • startswith 判断是否以某个字符或字符串为开头
    • endswith 判断是否以某个字符或字符串结尾
  • is 系列判断函数
    • isupper 判断字符串是否都是大写字母
    • islower 判断字符串是否都是小写字母
    • isdecimal 检测字符串是否以数字组成 必须是纯数字
  • split join strip replace (重点语法)
    • 【重点】split 按某字符将字符串分割成列表(默认字符是空格)
    • 【重点】join 按某字符将列表拼接成字符串(容器类型都可),容器中元素必须都是str
    • center 填充字符串,原字符居中 (默认填充空格)
    • 【重点】strip 去掉首尾两边的字符(默认为去掉空白符,如空格,/n之类)
    • 【重点】replace 把字符串的旧字符换成新字符
  • format 格式化字符串
    • (1)顺序传参
    • (2)索引传参
    • (3)关键字传参
    • (4)容器类型数据(列表或元组)传参
    • (5)format的填充符号的使用( ^ > < )
    • (6)进制转换等特殊符号的使用
    • :d 整型占位符 (要求必须是整型)
    • :2d 占用2位,默认原字符串居右
    • :f 浮点型占位符 (要求必须是浮点型,默认保留小数点后6位)
    • :.2f 保留二位小数,存在四舍五入的情况
    • {: s} 字符串占位符 (要求必须是字符串)
    • {:,} 金钱占位符
    • 综合案例
  • 了解即可的操作
    • 1、center,ljust,rjust,zfill
    • 2、expandtabs:把字符串中的\t转为空格,一个\t默认转换的空格数是 8
    • 3、is数字系列,isdigit,isdecimal,isnumeric
      • isdigit的试验:bytes,unicode
      • isdecimal的试验:uncicode
      • isnumberic:unicode,中文数字,罗马数字
    • 4、is其他:isalnum,isalpha,isidentifier,isspace,istitle
  • 列表相关操作
    • 一.列表的拼接 (同元组) +
    • 二.列表的重复 (同元组) *
    • 三.列表的切片 (同元组)
      • (1)[开始索引:] 从开始索引截取到列表的最后
      • (2)[:结束索引] 从开头截取到结束索引之前(结束索引-1)
      • (3)[开始索引:结束索引] 从开始索引截取到结束索引之前(结束索引-1)
      • (4)[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取列表元素值
      • (5)[:]或[::] 截取所有列表
    • 四.列表的获取 ( 同元组 )(复习)
    • 五.列表的修改 ( 可切片 )(复习)
    • 六.列表的删除 ( 可切片 )

字符串的相关操作

(1)字符串的拼接 +

str1 = "美丽的"
str2 = "大好河山"
res = str1 + str2
print(res)      # '美丽的大好河山'

(2)字符串的重复 *

str1 = "重要的事情说三遍"
res = str1 * 3
print(res)      # '重要的事情说三遍重要的事情说三遍重要的事情说三遍'

(3)字符串跨行拼接 \

str1 = "sdfsdffsdfsfsfdfsdfsfdff" \
"45245324534523"
print(str1)     # 'sdfsdffsdfsfsfdfsdfsfdff45245324534523'

(4)字符串的索引(复习)

     # 0  1  2
strvar = "好天气"#-3 -2 -1
print(strvar[-1])   # '气'

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

  • 语法 => 字符串[::] 完整格式:[开始索引:结束索引:间隔值]
    (1)[开始索引:] 从开始索引截取到字符串的最后(默认为0)
    (2)[:结束索引] 从开头截取到结束索引之前(结束索引-1)(默认到末尾)
    (3)[开始索引 结束索引] 从开始索引截取到结束索引之前(结束索引-1)
    (4)[开始索引 结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取字符
    (5)[:]或[::] 截取所有字符串
    (6)[间隔值] 正向或反向的步长 (默认为1)
    (7)字符串切片数值用引号隔开,而range用的是逗号隔开。

首先我们定义一个字符串strvar:

strvar = "我爱你亲爱的姑娘,见到你,我就心慌"

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

res = strvar[3:]    # 截取全部
print(res)      # '亲爱的姑娘,见到你,我就心慌'

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

res = strvar[:5]    # 截取索引0~4的字符串
print(res)      # '我爱你亲爱'

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

res = strvar[9:12]  # 截取索引9~11的字符串
print(res)      # 见到你

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

# 0 3 6 9 12 15 .... 我 亲 姑 见 , 心
# 正向截取
res = strvar[::3]  # 从头到尾截取步长为3的字符串并拼接
print(res)          # '我亲姑见,心'
# 逆向截取
# -1 -2 -3 -4 ...
res = strvar[::-1] # 从尾到头截取步长为1的字符串并拼接
print(res)          # '慌心就我,你到见,娘姑的爱亲你爱我'

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

res = strvar[:]     # 截取全部
print(res)

对字符串宝具

capitalize 使字符串首字母大写

strvar = "how old are you"
res = strvar.capitalize()
print(res)

title 使每个单词的首字母大写

res =strvar.title()
print(res)

upper 使所有字母变成大写

res = strvar.upper()
print(res)

lower 使所有字母变成小写

strvar = "HOW OLD ARE YOU"
res  = strvar.lower()
print(res)

swapcase 使字母大小写互换

strvar = "AbC d"
res = strvar.swapcase()
print(res)

len 计算并输出字符串的长度

strvar = "AbC d"
res = len(strvar)
print(res)

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

  • 可以通过起始值跟结束值选取切片:count(’’,start,end)
strvar = "你猜我是不是喜欢你"
res = strvar.count("是")
print(res)

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

  • 格式:.find(字符,start,end)
    注意:end最大值取不到, 取到它之前的那个数,严格区分大小写
strvar = "oh Father this is my Favorate boy"
res = strvar.find("f")           # -1
res = strvar.find("Fav")     # 21
res = strvar.find("is",13)       # 15
res = strvar.find("is",13,16)    # -1
print(res)

index 与 find 功能相同

  • find找不到返回-1,index找不到数据直接报错

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

  • 格式:startswith(字符,start,end)
strvar = "oh Father this is my Favorate boy"
res = strvar.startswith("oh")        # True
res = strvar.startswith("oh",3)      # False
print(res)

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

格式与startswith相同。

strvar = "oh Father this is my Favorate boy"
res = strvar.endswith("boy")             # True
res = strvar.endswith("Favorate",-12,-4)     # True
print(res)

is 系列判断函数

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

res = strvar.isupper("ABC")
print(res)

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

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

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

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

split join strip replace (重点语法)

【重点】split 按某字符将字符串分割成列表(默认字符是空格)

strvar = "you can you up no can no bb"
lst = strvar.split()       # ['you', 'can', 'you', 'up', 'no', 'can', 'no', 'bb']
strvar = "you-can-you-up-no-can-no-bb"
lst = strvar.split("-")      # ['you', 'can', 'you', 'up', 'no', 'can', 'no', 'bb']
  • 可以选择分割几次(从左向右)
strvar = "you can you up no can no bb"
lst = strvar.split("-",2)    # 只分割两次 ['you', 'can', 'you-up-no-can-no-bb']
# 选择从右向左分割 rsplit
lst = strvar.rsplit("-",2)   # ['you-can-you-up-no-can', 'no', 'bb']
print(lst)

【重点】join 按某字符将列表拼接成字符串(容器类型都可),容器中元素必须都是str

lst = ['you', 'can', 'you', 'up', 'no', 'can', 'no', 'bb']
strvar = "&".join(lst)
print(strvar)       # 'you&can&you&up&no&can&no&bb'

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

  • 语法效果:填充字符串的长度 + 居中的原字符串长度 = 括号内数值

默认填充空格:

strvar = "尉翼麟"        # "   尉翼麟    "
res = strvar.center(10)

指定字符填充:

strvar = "尉翼麟"
res = strvar.center(10,"*")
print(res)      # ***尉翼麟****

【重点】strip 去掉首尾两边的字符(默认为去掉空白符,如空格,/n之类)

strvar = "         xboyww    "
res = strvar.strip()
print(res)      # "xboyww"   # 默认去掉了两边的空格strvar = "@@@xboyww@"
res = strvar.strip("@")
print(res)      # "xboyww"  # 去掉了指定的字符'@'

【重点】replace 把字符串的旧字符换成新字符

strvar = "可爱的小狼狗喜欢吃肉,有没有,有没有,还有没有"
res = strvar.replace("有没有","真没有")      # "可爱的小狼狗喜欢吃肉,真没有,真没有,还真没有"

可以选择替换的次数:

strvar = "可爱的小狼狗喜欢吃肉,有没有,有没有,还有没有"
res = strvar.replace("有没有","真没有",1)    # 只替换一次,从第一个开始
print(res)                                  # 可爱的小狼狗喜欢吃肉,真没有,有没有,还有没有

案例:替换掉字符串所有的空格:

strvar = "a b c"
res = strvar.replace(" ","")
print(res)      # "abc"

format 格式化字符串

  • 在format中,{} 代表占位符。

(1)顺序传参
(2)索引传参
(3)关键字传参
(4)容器类型数据(列表或元祖)传参

(1)顺序传参

strvar = "{}向{}开了一枪,银弹而亡"
res = strvar.format("黄俊","刘伟")
print(res)

(2)索引传参

strvar = "{1}给{0}一个大大的拥抱" # 给入的索引为format括号内数值的索引
res = strvar.format("魏富强","李天兆")
print(res)      # '李天兆给魏富强一个大大的拥抱'

(3)关键字传参

  • 注意这里字符串是使用的等号来赋予给关键字,而不是引号
strvar = "{who2}向{who1}发起猛攻,进行扫射,嘴里大喊: 丫子给给~"
res = strvar.format(who1="黎建忠",who2="刘敏")    # 类似将format里的参数字典化
print(res)

(4)容器类型数据(列表或元组)传参

方法一:

strvar = "{0[0]}向{1[0]}抛了一个眉眼,鼻血直冒三万多尺,喷血而亡."
res = strvar.format( ["刘思敏","陈芮"] , ("黄俊","朱佳怡"))
print(res)

方法二:

  • 注意这里容器也是使用的等号来赋予给关键字
strvar = "{woman[1]}向{man[1]}抛了一个眉眼,鼻血直冒三万多尺,喷血而亡."
res = strvar.format( woman = ["刘思敏","陈芮"] , man = ("黄俊","朱佳怡"))
print(res)

方法三:

  • 注意在format当中,字典的键输入字符串中时,不要加上引号
strvar = "{woman[sm]}向{man[0]}抛了一个眉眼,鼻血直冒三万多尺,喷血而亡."
res = strvar.format( woman = {"cr":"陈芮","sm":"刘思敏"} , man = ("黄俊","朱佳怡"))
print(res)

(5)format的填充符号的使用( ^ > < )

  • ^ 原字符串居中
    > 原字符串居右
    < 原字符串居左
格式示例:{'原字符串':=<10}
  • = : 要填充的字符
    ^ : 填充的方向,原字符串居中。
    10 : 字符串的总长度为10。
    总长度10 = 原字符串长度 + 填充字符的长度。
    空格,汉字也不用包裹引号。
strvar = "{who:你^10}在长春长生公司{do:@>10},感觉{feel:!<10}"
res = strvar.format(who="魏富强",do="扎疫苗",feel="血巢被掏空")
print(res)      # 你你你魏富强你你你你在长春长生公司@@@@@@@扎疫苗,感觉血巢被掏空!!!!!

(6)进制转换等特殊符号的使用

{:d} , {:f} , {:s} , {:,}

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

strvar = "{:d}月{:d}号,是母亲节"
# res = strvar.format(5.9,10.8)        # 输入浮点型会报错
res = strvar.format(5,10)          # {:d}必须对应输入的是整形
print(res)                          # 5月10号,是母亲节

:2d 占用2位,默认原字符串居右

strvar = "母亲节,给自己的老妈,买了{:2d}个康乃馨"
res = strvar.format(1)     # 占用两位,默认居右
print(res)strvar = "母亲节,给自己的老妈,买了{:<2d}个康乃馨"
res = strvar.format(1)
print(res)                  # 占用两位,使用<,居左strvar = "母亲节,给自己的老妈,买了{:^3d}个康乃馨"
res = strvar.format(1)
print(res)                  # 占用两位,使用^,居中

:f 浮点型占位符 (要求必须是浮点型,默认保留小数点后6位)

strvar = "买花一共花了{:f}元"
res = strvar.format(9.9)
print(res)      # 买花一共花了9.900000元

:.2f 保留二位小数,存在四舍五入的情况

strvar = "王振开工资了,一个月{:.2f}元"
res = strvar.format(98.319)
print(res)

{: s} 字符串占位符 (要求必须是字符串)

strvar = "{:s}"
res = strvar.format("中国疫情正在渐渐的变好,但是美国的疫情一天不如一天")
print(res)

{:,} 金钱占位符

strvar = "{:,}"
res = strvar.format(123456789)
print(res)

综合案例

strvar = "{:s}看好了一辆兰博基尼,价格是{:.1f}元,打算买{:d}个"
res = strvar.format("杨浩",9.9,10)
print(res)

了解即可的操作

1、center,ljust,rjust,zfill

print("egon".center(50,'*')) # 总共50个字符,egon居中,剩余两侧全为*
print("egon".ljust(50,'*'))     # 总共50个字符,egon居左,剩余右侧全为*
print("egon".rjust(50,'*'))     # 总共50个字符,egon居右,剩余左侧全为*
print("egon".zfill(50))           # 总共50个字符,egon居右,剩余左侧全为0

2、expandtabs:把字符串中的\t转为空格,一个\t默认转换的空格数是 8

tabsize – 指定转换字符串中的 tab 符号(’\t’)转为空格的字符数。

str.expandtabs(tabsize=8)

3、is数字系列,isdigit,isdecimal,isnumeric

  • 三者不能判断浮点数

在python3中,我们先命名以下四种不同的数据

num1=b'4' #bytes
num2=u'4' #unicode,python3中无需加u就是unicode
num3='四' #中文数字
num4='Ⅳ' #罗马数字
isdigit():用于b和u格式,即num1和num2
isdecimal():用于u格式,即num2
isnumberic():用于u,中文数字、罗马数字,即num2、num3、num4

isdigit的试验:bytes,unicode

print(num1.isdigit()) #True
print(num2.isdigit()) #True
print(num3.isdigit()) #False
print(num4.isdigit()) #False

isdecimal的试验:uncicode

# bytes类型无isdecimal方法
print(num2.isdecimal()) #True
print(num3.isdecimal()) #False
print(num4.isdecimal()) #False

isnumberic:unicode,中文数字,罗马数字

bytes类型无isnumberic方法
print(num2.isnumeric()) #True
print(num3.isnumeric()) #True
print(num4.isnumeric()) #True

4、is其他:isalnum,isalpha,isidentifier,isspace,istitle

name='egon123'
print(name.isalnum()) #判断字符串是否由字母或数字组成
print(name.isalpha()) #判断字符串是否只由字母组成name="123a" # False 首字母不能为数字
print(name.isidentifier()) #判断字符串是否为有效的标识符,可以用于判断变量名是否合法name="       "
print(name.isspace()) #判断字符串是否仅为空格组成name="My Name Is"
print(name.istitle()) #判断字符串是否每个字母大写

列表相关操作

一.列表的拼接 (同元组) +

lst1 = [1,2]
lst2 = [3,4]
lst = lst1 + lst2
print(lst)

二.列表的重复 (同元组) *

lst1 = [1,2]
lst = lst1 * 3
print(lst)

三.列表的切片 (同元组)

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

先定义一个变量lst用来试验:

lst = ["王颖倩","朱佳怡","云超","主胜","刘敏","王振","杨浩"]

(1)[开始索引:] 从开始索引截取到列表的最后

res = lst[2:]
print(res)

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

res = lst[:4]
print(res)

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

res = lst[3:5] # 3 4
print(res)

(4)[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取列表元素值

正向截取:

res = lst[::5]      # 正向以5的步长截取
print(res)

逆向截取:

res = lst[::-1]     # 反向以1的步长截取
print(res)

(5)[:]或[::] 截取所有列表

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

四.列表的获取 ( 同元组 )(复习)

#       0   1   2
lst = ["a","b","c"]
#      -3  -2  -1
print(lst[0])

五.列表的修改 ( 可切片 )(复习)

lst[0] = "ddd"
print(lst)
  • 赋值时,修改的数据要求是: >可迭代性的数据< iterable

利用切片进行修改(切一段,放进去所有值)

  • 带有步长的切片修改(切几个改几个),改多了就会报错
lst = ["王颖倩","朱佳怡","云超","主胜","刘敏","王振","杨浩"]
lst[1:3] = ["姜斌强","尉翼麟","aaa","bbb","cccc"]
# lst[1:3] = "1234"      如果输入的片段是字符串则会把每个字符都拆分后输入
print(lst)

六.列表的删除 ( 可切片 )

lst = ["猪八戒","唐僧","孙悟空","沙僧","白龙马"]
# 删除单个
'''
del lst[0]
print(lst)
'''
# 删除一段 (通过切片删除)
del lst[1:4]
print(lst)

python学习 day7_字符串、列表的相关操作相关推荐

  1. python基础===【字符串】所有相关操作

    #字符串的相关操作#基本操作 #+ 字符串连接操作 str1 = '来是come走是go' str2 = '点头yes摇头no' result = str1 + str2 print(result)# ...

  2. Python学习笔记——字符串、列表、元组、字典

    字符串介绍 想一想: 当打来浏览器登录某些网站的时候,需要输入密码,浏览器把密码传送到服务器后,服务器会对密码进行验证,其验证过程是把之前保存的密码与本次传递过去的密码进行对比,如果相等,那么就认为密 ...

  3. python列表使用技巧与方法_Python列表的相关操作与方法

    Python列表的相关操作与方法 1.列表 why:int.bool.str存在缺陷 str:存储少量的数据:所有的操作获取的内容都是 str类型,存储的数据类型单一. what: 列表可以承载任意数 ...

  4. python小白——进阶之路——day天-———列表的相关操作以及函数

    ###列表的相关操作 #(1)列表的拼接lst1=[1,2] lst2=[3,4] listvar = lst1+lst2 print(listvar) #(2)列表的重复lst = [1,2,3] ...

  5. 20230209 Python的列表及相关操作

    一.认识列表 案例:定义变量保存一个班所有学生的分数 scores = [33, 44, 90, 100, 77, 82, 0, 93, 99, 94] 求平均分 print(sum(scores) ...

  6. Python笔记_07_列表的相关操作_列表相关函数_深浅拷贝_字典相关函数_集合相关函数_冰冻集合

    笔记目录 列表的相关操作 列表的拼接(同元组) 列表的重复 (同元组) 列表的切片 (同元组) 列表的获取 (同元组) 列表的修改 (可切片) 列表的删除 ( 可切片 ) 列表的相关函数 append ...

  7. Python学习系列(五)(文件操作及其字典)

    Python学习系列(五)(文件操作及其字典) Python学习系列(四)(列表及其函数) 一.文件操作 1,读文件      在以'r'读模式打开文件以后可以调用read函数一次性将文件内容全部读出 ...

  8. python教程400集笔记,Python学习中的笔记--集合相关,python笔记--集合

    Python学习中的笔记--集合相关,python笔记--集合 集合的基本操作 一.可修改的集合set 创建集合 var = set() var = {'a','b','c','d'} 成员检测 va ...

  9. python学习笔记四-列表

    list列表 序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. 列表是最常用的Python数据类型,它可以作为一个 ...

最新文章

  1. Linux下使用ssh动态验证码登陆机器
  2. 最新开源!TransReID:首个基于Transformer的ReID网络,各项任务全面领先!
  3. 自动转换开关(ATS)在数据中心配电系统中的应用
  4. 什么是Linux系统调用system call?(Linux内核中设置的一组用于实现各种系统功能的子程序)(区别于标准C库函数调用)核心态和用户态的概念、中断的概念、系统调用号、系统调用表
  5. chapter16 计算机体系结构基础
  6. block,inline,inline-block的区别
  7. 蓝桥杯历届试题----矩阵翻硬币
  8. 调制的缺点_DML、EAM与MZI调制的比较
  9. C语言各类位操作用法
  10. 昨天,JetBrains 推出“下一代 IDE”,对标VS Code?快看看有哪些值得期待的功能!...
  11. tomcat设置context不生效_后端服务:关于Tomcat相关面试题,看懂这篇就够了(有深度)...
  12. java excel 2007兼容包_Office 2007兼容包官方下载_2007 Office system 兼容包免费版下载-华军软件园...
  13. 【PPT在插入excel对象时报错】
  14. 2021电赛F题智能送药小车程序代码
  15. 年薪80万难觅技术人才 杭州区块链人才需求旺盛
  16. Matlab-syms用法
  17. 大数据之Javase
  18. 电子人的浪漫--致爱丽丝音乐盒
  19. Hive的面试题总结
  20. 电脑没有鼠标怎么打开计算机,电脑鼠标右键菜单没有打开方式选项怎么办

热门文章

  1. 04-安全攻防之bl和ret指令
  2. 动态链接库、静态链接库
  3. ESB项目培训样例说明
  4. 嵌入式linux内核启动过程,嵌入式Linux:ARM Linux启动流程
  5. oracle数据库:查询平均分时,保留小数位数
  6. ARP(地址解析协议)和RARP(逆地址解析协议)
  7. 磁悬浮框架飞轮磁轴承技术研究与发展现状
  8. MySQL快速学习笔记(建议收藏)
  9. 使用LCN框架解决分布式事物
  10. vmware搭建多台虚拟机-桥接模式