• python之字符串及操作相关知识


    python之字符串相关知识

    1、字符串

    1.1 字符串的格式

    如下面定义的变量a,存储的是数字类型的值
    在这里插入图片描述

    如下面定义的变量b,存储的是字符串类型的值
    请添加图片描述

    总结
    单引号或者双引号或者三单引号或者三双引号中的数据,就是字符串

    1.2 字符串的输出

    就是前面讲过的字符串格式化输出的几种方式

    • 格式化操作符%s的方式

    示例

    name = "Cindy"
    address = "四川省成都市"
    print("大家好,我叫%s,我的老家在%s" %(name, address))
    
    • 1
    • 2
    • 3

    运行结果:
    请添加图片描述

    • .formart( ) 的方式

    示例

    name = "Cindy"
    address = "四川省成都市"
    print("大家好,我叫{},我的老家在{}".format(name, address))
    
    • 1
    • 2
    • 3

    运行结果:
    请添加图片描述

    • f-strings的方式

    示例

    age = 11
    name = "Cindy"
    score = 85.5
    string1 = f"我的名字叫{name},今年{age}岁,数学成绩是{score}分"
    string2 = f'我的名字叫{name},今年{age}岁,数学成绩是{score}分'
    string3 = f"""我的名字叫{name},今年{age}岁,数学成绩是{score}分"""
    string4 = f'''我的名字叫{name},今年{age}岁,数学成绩是{score}分'''
    print(string1)
    print(string2)
    print(string3)
    print(string4)
    
    a = 1
    b = 2
    print(f"a+b={a+b}")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    运行结果:
    请添加图片描述

    1.3 字符串的输入

    输入也是使用在之前python基础知识中讲过的 input函数,通过它能够完成从键盘获取数据,然后保存到指定的变量中,再次提醒:input 获取的数据,都以字符串的方式进行保存,即使输入的是数字也是以字符串的方式保存
    示例

    studentId = input("请输入你的学号:")
    print("你的学号是%s" % studentId)
    
    • 1
    • 2

    运行结果:
    请添加图片描述

    2、下标和切片

    2.1 字符串中下标的使用

    字符串实际上就是字符的数组,所以它同列表和元组一样也支持下标索引
    如有字符串 userName = “Cindy” ,其在内存中的实际存储如下图所示:
    请添加图片描述
    若想取出部分字符,就可以通过下标的方法(注意:下标从0开始;下标为负数时,Python是从后向前进行定位提取的,即若下标为负值,则表示反向检索,从后往前开始计数;取值超出范围会报错)
    示例1

    userName = "Cindy"
    print(userName[0])
    print(userName[3])
    
    • 1
    • 2
    • 3

    运行结果:
    请添加图片描述

    示例2

    # -1为倒数第一个,-2为倒数第二个...
    userName = "Cindy"
    print(userName[-1])
    print(userName[-3])
    
    • 1
    • 2
    • 3
    • 4

    运行结果:
    请添加图片描述

    2.2 切片

    切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。
    切片的语法:[起始 : 结束 : 步长]
    注意:选取的区间从“起始”位开始,到“结束”位的前一位结束(不包含结束位本身),即选取区间为左闭右开,步长表示选取间隔。

    示例1

    userName = "Cindy"
    print(userName[0:6:2])
    
    • 1
    • 2

    运行结果:
    请添加图片描述

    示例2

    # 切片不写步长默认的步长为1
    userName = "Cindy"
    print(userName[0:3])  # 取出下标为0~2的字符
    
    • 1
    • 2
    • 3

    运行结果:
    请添加图片描述

    示例3

    # 结束的位置不写值,取出的就是开始位置后面全部的值
    userName = "Cindy"
    print(userName[2:])  # 取下标为2开始到最后的字符
    
    
    • 1
    • 2
    • 3
    • 4

    运行结果:
    请添加图片描述

    示例4

    # 开始的位置不写值,取出的就是结束位置前面全部的值
    userName = "Cindy"
    print(userName[:3])  # 取下标为2及之前的字符
    
    • 1
    • 2
    • 3

    运行结果:
    请添加图片描述

    示例5

    userName = "Cindy"
    print(userName[1:-1])  # 取下标为1开始到倒数第二个之间的字符
    
    • 1
    • 2

    运行结果:
    请添加图片描述

    示例6

    # 步长为负数,表示从后往前取值,所以开始位置的值要大于结束位置的值
    userName = "Cindy"
    print(userName[5:0:-1])
    
    • 1
    • 2
    • 3

    运行结果:
    请添加图片描述

    示例7

    # 步长为负,其它的地方不写,就是集合的逆序操作
    userName = "Cindy"
    print(userName[::-1])
    
    • 1
    • 2
    • 3

    运行结果:
    请添加图片描述

    3、字符串常见的操作方法

    3.1 find( ) 方法

    find() 方法用于检测字符串中是否包含指定值,如果指定 start(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1。

    语法如下:

    string.find(value, start, end)

    参数含义:
    value:必选参数。指定要检索的字符串
    start:可选参数。开始的索引,默认为0
    end:可选参数。结束的索引,默认为字符串的长度

    注意:find()函数在查找时,start处的字符将会被检查,而end是结束检索的索引,所以end索引处的字符不会参与检查

    示例

    text = "Hello,my name is Cindy"
    print(text.find("my"))       # 找到返回开始的索引
    print(text.find("m",3,12))   # 搜索位置 3 到 11,字母 "m" 在字符串中首次出现的位置
    print(text.find("m",7))      # 指定开始索引的位置为7
    print(text.find("p"))        # 没有找到返回-1
    
    • 1
    • 2
    • 3
    • 4
    • 5

    运行结果:
    请添加图片描述

    3.2 index( ) 方法

    跟find( )方法几乎相同,区别在于如果找不到该值,index() 方法会报异常

    语法如下:

    string.index(value, start, end)

    参数含义:
    value:必选参数。指定要检索的字符串
    start:可选参数。开始的索引,默认为0
    end:可选参数。结束的索引,默认为字符串的长度

    注意:index()函数在查找时,start处的字符将会被检查,而end是结束检索的索引,所以end索引处的字符不会参与检查

    示例

    text = "Hello,my name is Cindy"
    print(text.index("my"))       # 找到返回开始的索引
    print(text.index("m",3,12))   # 搜索位置 3 到 11,字母 "m" 在字符串中首次出现的位置
    print(text.index("m",7))      # 指定开始索引的位置为7
    print(text.index("p"))        # 没有找到会引发异常
    
    • 1
    • 2
    • 3
    • 4
    • 5

    运行结果:
    请添加图片描述

    3.3 count( ) 方法

    返回指定值在字符串中出现的次数
    语法如下:

    string.count(value, start, end)

    参数含义:
    value:必选参数。指定要检索的字符串
    start:可选参数。开始的索引,默认为0
    end:可选参数。结束的索引,默认为字符串的长度

    注意:start处的字符将会被检查,而end是结束检索的索引,所以end索引处的字符不会参与检查

    示例

    text = "I don't want to learn English,but I have to learn it"
    print(text.count("learn"))         # 返回 "learn" 在字符串中出现的次数
    print(text.count("learn",30,48))   # 从位置 30 到 47 进行检索
    
    • 1
    • 2
    • 3

    运行结果:
    请添加图片描述

    3.4 replace( ) 方法

    返回字符串,用一个指定的值替换另一个指定的值
    语法如下:

    string.replace(oldvalue, newvalue, count)

    参数含义:
    oldvalue:必选参数。要检索的字符串
    newvalue :必选参数。替换旧值的字符串
    count:可选参数。指定要替换的旧值出现次数。默认为替换所有出现的旧值。

    示例

    text = "row row row your boat,gently down the stream"
    print(text.replace("row","line"))   # 用 "line" 替换所有出现的单词 "row"
    print(text.replace("row","line",2)) # 用 "line" 替换前两次出现的单词 "row"
    
    • 1
    • 2
    • 3

    运行结果:
    请添加图片描述

    3.5 split( ) 方法

    在指定的分隔符处拆分字符串,并返回列表。可以指定分隔符,默认分隔符是任何空白字符。若指定 max,列表将包含指定数量加一的元素
    语法如下:

    string.split(separator, max)

    参数含义:
    separator:可选参数。规定分割字符串时要使用的分隔符。默认值为空白字符。
    max:可选参数。规定要执行的拆分数。默认值为 -1,即“所有出现次数”

    示例

    text1 = "Nice to meet you"
    print(text1.split())         # 将字符串拆分成一个列表,其中每个单词都是一个列表项
    
    text2 = "Hello,my name is Cindy,nice to meet you"
    print(text2.split(","))      # 使用逗号作为分隔符,分割字符串
    
    text3 = "Bob、Alice、Cindy、David、Lisa"
    print(text3.split("、",1))   # 将字符串拆分为最多2个项目的列表(仅分割1个字符串)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    运行结果:
    请添加图片描述

    3.6 capitalize( ) 方法

    将字符串第一个字符大写,返回一个字符串
    语法如下:

    string.capitalize()

    无参数

    示例

    text = "row row row your boat,gently down the stream"
    print(text.capitalize())
    
    • 1
    • 2

    运行结果:
    请添加图片描述

    3.7 title( ) 方法

    把字符串的每个单词首字母大写,返回一个字符串,如果单词包含数字或符号,则其后的第一个字母将转换为大写字母
    语法如下:

    string.title()

    无参数

    示例

    text1 = "nice to meet you"
    print(text1.title())    # 将每个单词的首字母大写
    
    text2 = "can you see 2dd and 5p3g"
    print(text2.title())    # 非字母之后的第一个字母将转换为大写字母
    
    • 1
    • 2
    • 3
    • 4
    • 5

    运行结果:
    请添加图片描述

    3.8 startswith( ) 方法

    如果字符串以指定的值开头,则 startswith( ) 方法返回 True,否则返回 False
    语法如下:

    string.startswith(value, start, end)

    参数含义:
    value:必选参数。检查字符串是否以其开头的值
    start:可选参数。开始检索的位置
    end:可选参数。结束检索的位置

    注意:start处的字符将会被检查,而end是结束检索的索引,所以end索引处的字符不会参与检查

    示例

    text = "Nice to meet you"
    print(text.startswith("Nic"))       # 检查字符串是否以 "Nic" 开头
    print(text.startswith("mee",5,15))  # 检查位置 5 到 14 是否以字符 "mee" 开头
    
    • 1
    • 2
    • 3

    运行结果:
    请添加图片描述

    3.9 endswith( ) 方法

    如果字符串以指定值结尾,则 endswith() 方法返回 True,否则返回 False
    语法如下:

    string.endswith(value, start, end)

    参数含义:
    value:必选参数。检查字符串是否以其结尾的值
    start:可选参数。开始检索的位置
    end:可选参数。结束检索的位置

    注意:start处的字符将会被检查,而end是结束检索的索引,所以end索引处的字符不会参与检查

    示例

    text = "Nice to meet you."
    print(text.endswith("meet you."))       # 检查字符串是否以短语 "meet you." 结尾
    print(text.endswith("meet you.",5,16))  # 检查位置 5 至 15 是否以短语 "meet you." 结尾
    
    • 1
    • 2
    • 3

    运行结果:
    请添加图片描述

    3.10 lower( ) 方法

    lower() 方法返回一个字符串,将字符串全部转换为小写。符号和数字将被忽略
    语法如下:

    string.lower()

    无参数

    示例

    text = "Hello,My NAME IS Cindy"
    print(text.lower())   # 将字符小写
    
    • 1
    • 2

    运行结果:
    请添加图片描述

    3.11 upper( ) 方法

    upper() 方法返回一个字符串,将字符串全部转换为大写。符号和数字将被忽略
    语法如下:

    string.upper()

    无参数

    示例

    text = "nice to meet you"
    print(text.upper())   # 将字符大写
    
    • 1
    • 2

    运行结果:
    请添加图片描述

    3.12 lstrip( ) 方法

    lstrip() 方法删除所有前导字符,空格是要删除的默认前导字符
    语法如下:

    string.lstrip(characters)

    参数含义:
    characters:可选参数。一组作为前导字符要删除的字符

    示例

    text1 = "       hello          "
    print("say",text1.lstrip(),"Cindy")   # 删除字符串左侧的空格
    
    text2 = "...,,app?.s..hello"
    print(text2.lstrip(".,?aps"))         # 删除前导字符
    
    • 1
    • 2
    • 3
    • 4
    • 5

    运行结果:
    请添加图片描述

    3.13 rstrip( ) 方法

    rstrip() 方法删除所有结尾字符(字符串末尾的字符),空格是要删除的默认结尾字符
    语法如下:

    string.rstrip(characters)

    参数含义:
    characters:可选参数。一组作为结尾字符要删除的字符。

    示例

    text1 = "       hello          "
    print("say",text1.rstrip(),"Cindy")   # 删除字符串右侧的空格
    
    text2 = "hello...,,app?.s.."
    print(text2.rstrip(".,?aps"))         # 删除结尾字符
    
    • 1
    • 2
    • 3
    • 4
    • 5

    运行结果:
    请添加图片描述

    3.14 strip( ) 方法

    删除任何前导和结尾的字符,空格是要删除字符串两端的空格
    语法如下:

    string.strip(characters)

    参数含义:
    characters:可选参数。一组字符,要删除的前导/尾随字符

    示例

    text1 = "       hello          "
    print("say",text1.strip(),"Cindy")   # # 删除字符串开头和结尾两端的空格
    
    text2 = "..ss.hello...,,app?.s.."
    print(text2.strip(".,?aps"))         # 删除前导和尾随字符
    
    • 1
    • 2
    • 3
    • 4
    • 5

    运行结果:
    请添加图片描述

    3.15 isdigit( ) 方法

    如果字符串中的所有字符都是数字,返回 True,否则返回 False
    语法如下:

    string.isdigit()

    无参数

    示例

    text1 = "123456"
    print(text1.isdigit())  # 检查字符串中所有字符是否都是数字
    
    text2 = "hello123456"
    print(text2.isdigit())
    
    • 1
    • 2
    • 3
    • 4
    • 5

    运行结果:
    请添加图片描述

    3.16 join( ) 方法

    把可迭代对象的元素连接到字符串的末尾,必须将字符串指定为分隔符
    语法如下:

    string.join(iterable)

    参数含义:
    iterable:必选参数。所有返回值均为字符串的任何可迭代对象。

    示例

    text = "abcdef"
    print(",".join(text))   # 使用 ,作为分隔符
    
    • 1
    • 2

    运行结果:
    请添加图片描述

  • 相关阅读:
    为什么训练交叉验证精度很高但是测试特别差劲
    SQL-4大板块(存储过程、函数、视图、触发器)
    玩转Mysql系列 - 第14篇:详解事务
    在kernel中使用内存检测
    JAVA中国民航酒店分销系统计算机毕业设计Mybatis+系统+数据库+调试部署
    socket
    实验室常用滤器分类
    第二篇:矩阵的翻转JavaScript
    直接缓存访问DCA
    大数据技术之-Hive源码
  • 原文地址:https://blog.csdn.net/qq_45158642/article/details/127523519