Python之字符串的几个常见的用法和函数

Python字符串

字符串的拼接:

Python 中使用+来合并两个字符串,这种合并字符串的方法叫做拼接。其基本语法如下:

result_string = source_string1 + source_string2

其中:

  • source_string1:待合并的第一个字符串;
  • source_string2:待合并的第二个字符串;
  • result_string:合并后的字符串。

注意:如果需要,在两个字符串之间可以增加相应的空格,具体见下面的例子。例如,将姓氏和名字拼接成全名:

# coding=utf-8# 将姓氏和名字分别保存在两个变量中first_name = 'Zhang'last_name = 'san'
# 将姓氏和名字拼接,将结果存储在full_name变量中full_name = first_name + " " + last_nameprint(full_name)

输出结果:

Zhang san
字符串长度获取

Python 提供了len()函数来计算,并返回字符串的长度,即字符串中单个元素的个数。其基本语法如下:

length = len(target_string)

其中:

  • target_string: 目标字符串变量;
  • length: 保存字符串长度的变量;
  • len: 获取字符串长度的语法关键词。

下面给出了具体的使用示例:

# coding=utf-8# 创建一个字符串变量,获取其长度并打印出来
color = 'It is red'length = len(color)
print (length)
# 直接在len函数中引入字符串内容获得其长度,然后打印出来
print(len('This is a circle!'))

输出结果:

917
字符串查找

Python 提供了内置的字符串查找方法find(),利用该方法可以在一个较长的字符串中查找子字符串。如果该字符串中,有一个或者多个子字符串,则该方法返回第一个子串所在位置的最左端索引,若没有找到符合条件的子串,则返回-1find()方法的基本使用语法如下:

source_string.find(sub_string)

其中:

  • source_string:源字符串;
  • sub_string:待查的目标子字符串;
  • find:字符串查找方法的语法关键字。

例如,在一个字符串中,查找两个单词的位置:

# coding=utf-8
# 创建一个字符串source_string = 'The past is gone and static'
# 查看"past"在source_string字符串中的位置
print(source_string.find('past'))
# 查看"love"在source_string字符串中的位置
print(source_string.find('love'))

输出结果:

4-1
字符串函数
  • string.find(str, beg=0, end=len(str)):检测字符串中是否包含子字符串 str,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串,返回子字符串的索引值,否则返回 -1。

    str1 = "hello world"     # 空格也算一个字符print(str1.find("w))print(str1.find("wo"))print(str1.find("l", 4, 10))print(str1.find("e", 3))
    

    执行结果: ```6 6 9

  • 1 ```

  • string.rfind(str, beg=0, end=len(string)):返回字符串 str 最后一次出现的位置(从右向左查询),如果没有匹配项则返回 -1。

    str1 = "hello world"print(str1.rfind("l"))print(str1.rfind("l", 4, 10))print(str1.rfind("e", 3))
    

    执行结果: ```9 9

  • 1 ```

  • string.index(str, beg=0, end=len(string)):跟 find() 方法一样,只不过如果 str 不在 string 中会抛出一个异常。

  • string.rindex(str, beg=0, end=len(string)):跟 rfind() 方法一样,只不过如果 str 不在 string 中会抛出一个异常。

  • string.count(str, start= 0, end=len(string)):统计字符串里某个字符出现的次数。

    str1 = "hello world"print(str1.count("l"))print(str1.count("l", 2, 9))
    

    执行结果:

    32
    
  • string.split(str=” “, num=string.count(str)):str 表示分割字符串的符号,num 表示分割次数,返回一个列表。

    str1 = "hello world"print(str1.split())     # 默认是以一个空白符为分割符号print(str1.split("l"))print(str1.split("l", 1))
    

    执行结果:

    ['hello', 'world']['he', '', 'o wor', 'd']['he', 'lo world']
    
  • string.rsplit(str=” “, num=string.count(str)):类似于 split() 函数,不过是从右边开始查找,返回一个列表。

    str1 = "a b c"print(str1.rsplit())print(str1.rsplit(" ", 1))     # 只切分一次
    

    执行结果:

    ['a', 'b', 'c']['a b', 'c']
    
  • string.partition(str):根据指定的分隔符将字符串进行分割。如果字符串包含指定的分隔符,则返回一个三元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。如果没有该分隔符,则抛出一个异常。

    str1 = "www.educoder.net"print(str1.partition("."))
    

    执行结果:

    ('www', '.', 'educoder.net')
    
  • string.rpartition(str):类似于 partition() 函数,不过是从右边开始查找。

    str1 = "www.educoder.net"print(str1.rpartition("."))
    

    执行结果:

    ('www.educoder', '.', 'net')
    
  • string.join(sequence):将序列中的元素以指定的字符连接生成一个新的字符串。sequence 表示要连接的元素序列。

    list1 = ["www","educoder","net"]print(".".join(list1))
    

    执行结果:

    www.educoder.net
    
  • string.lower():将字符串中所有大写字母转换成小写。

  • string.upper():将字符串中所有小写字母转换成大写。

  • string.capitalize():将字符串的第一个字符转换为大写。如果已经是大写,则不变。

    str1 = "hello"str2 = "Hello"print(str1.capitalize())print(str2.capitalize())
    

    执行结果:

    HelloHello
    
  • string.title():返回”标题化”的字符串,就是说所有单词的首个字母转化为大写,其余字母均为小写。

    str1 = "How are you?"str2 = "www.baidu.com"print(str1.title())print(str2.title())
    

    执行结果:

    How Are You?Www.Baidu.Com
    
  • string.swapcase():字符串的大小写字母进行转换。

    str1 = "How Are You?"print(str1.swapcase())
    

    执行结果:

    hOW aRE yOU?
    
  • string.replace(old, new[, max]):把字符串中的 old (旧字符串) 替换成 new (新字符串),如果指定第三个参数 max,则替换不超过 max 次。

    str1 = "www//educoder//net"print(str1.replace("//","."))print(str1.replace("//",".",1))
    

    执行结果:

    www.educoder.netwww.educoder//net
    
  • sting.maketrans(intab, outtab):用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。两个字符串的长度必须相同,为一一对应的关系。通常与 translate 函数连用。

    x = 'abcdefs'y = '1234567'str1='just do it'trantab = str1.maketrans(x,y)print(trantab)
    

    执行结果(都是 ASCII 码值):

    {97: 49, 98: 50, 99: 51, 100: 52, 101: 53, 102: 54, 115: 55}
    
  • string.translate(table):根据参数 table 给出的表(包含 256 个字符)转换字符串的字符,通常情况下,table 通过 maketrans 函数得到。

    x = 'abcdefs'y = '1234567'     # 就是将字符串中的a改成1,b改成2,以此类推str1='just do it'trantab = str1.maketrans(x,y)print(str1.translate(trantab))
    

    执行结果:

    ju7t 4o it
    
  • string.strip([chars]):移除字符串首尾指定的字符(默认为空格)或字符序列,chars 表示指定的字符或字符序列。

    str1 = "   hello world   "str2 = "##   hello world###"print(str1.strip())     # 只去除首位的,中间的空格不会移除print(str1.strip("#"))     # 只去除首位的#号
    

    执行结果:

    hello world hello world
    
  • string.rstrip([chars]):与 strip 类似,不过 rstrip 函数只移除字符串末尾(最右侧)指定的字符(默认为空格)或字符序列。

  • string.lstrip([chars]):与 strip 类似,不过 lstrip 函数只移除字符串开头(最左侧)指定的字符(默认为空格)或字符序列。

  • string.startswith(substr, beg=0,end=len(string)):检查字符串是否是以指定子字符串 substr 开头,如果是则返回 True,否则返回 False。如果参数 beg 和 end 指定值,则在指定范围内检查。

    str1 = "this is string example....wow!!!"print (str1.startswith('this'))     # 字符串是否以this开头print (str1.startswith('string', 8))     # 从第八个字符开始的字符串是否以 string 开头print (str1.startswith('this', 2, 4))     # 从第2个字符开始到第四个字符结束的字符串是否以this开头
    

    执行结果:

    TrueTrueFalse
    
  • string.endswith(substr, beg=0,end=len(string)):检查字符串是否是以指定子字符串 substr 结束,如果是则返回 True,否则返回 False。如果参数 beg 和 end 指定值,则在指定范围内检查。

    str1 = "this is string example"print (str1.endswith('example'))print (str1.endswith('str', 0, 11))print (str1.endswith('this', 2, 4))
    

    执行结果:

    TrueTrueFalse
    
  • string.center(width[, fillchar]):返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。如果指定的长度小于原字符串的长度则返回原字符串。

    str1 = "www.educoder.net"print(str1.center(40, "#"))     # 用#号来填充
    

    执行结果:

    ############www.educoder.net############
    
  • string.ljust(width[, fillchar]):返回一个原字符串左对齐,并使用空格填充至指定长度 width 的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。

  • string.rjust(width[, fillchar]):返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串。

    str1 = "www.educoder.net"print(str1.ljust(40, "#"))print(str1.rjust(40, "#"))print(str1.rjust(5))
    

    执行结果:

    www.educoder.net################################################www.educoder.netwww.educoder.net
    
  • string.zfill(width):返回指定长度的字符串,原字符串右对齐,前面填充 0。

    str1 = "www.educoder.net"str2 = "hello"print(str1.zfill(10))print(str2.zfill(10))
    

    执行结果:

    www.educoder.net00000hello
    
  • string.isalpha():如果字符串至少有一个字符并且所有字符都是字母或文字则返回 True,否则返回 False。

    str1 = "###abc"str2 = "abc"print(str1.isalpha())print(str2.isalpha())
    

    执行结果:

    FalseTrue
    
  • string.isspace():如果字符串中只包含空格,则返回 True,否则返回 False。

    str1 = " "str2 = "abc"print(str1.isspace())print(str2.isspace())
    

    执行结果:

    TrueFalse
    
  • string.isdigit():如果字符串只包含数字则返回 True 否则返回 False。

    str1 = "abc12"str2 = "123"print(str1.isdigit())print(str2.isdigit())
    

    执行结果:

    FalseTrue
    
  • string.isalnum():如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False。

    str1 = "abc123"str2 = "##"print(str1.isalnum())print(str2.isalnum())
    

    执行结果:

    TrueFalse
    
  • string.isdecimal():检查字符串是否只包含十进制字符。

    str1 = "educoder2020"str2 = "23443434"print(str1.isdecimal())print(str2.isdecimal())
    

    执行结果:

    FalseTrue
    
  • string.isnumeric():如果字符串中只包含数字字符,则返回 True,否则返回 False。

    str1 = "educoder2020"str2 = "23443434"print(str1.isnumeric())print(str2.isnumeric())
    

    执行结果:

    FalseTrue
    
  • string.istitle():如果字符串中所有的单词拼写首字母是否为大写,且其他字母为小写则返回 True,否则返回 False。

    str1 = "I Like Python"str2 = "I like python"print(str1.istitle())print(str2.istitle())
    

    执行结果:

    TrueFalse
    
  • string.isupper():如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False。

    str1 = "I LIKE PYTHON"str2 = "I LIKE python"print(str1.isupper())print(str2.isupper())
    

    执行结果:

    TrueFalse
    
  • sting.islower():如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False。

    str1 = "I LIKE python"str2 = "i like python"print(str1.islower())print(str2.islower())
    

    执行结果:

    FalseTrue
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Deng872347348

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值