0%

9、字符串.md

一、字符串包含

1、说明

字符串就是一串字符,是编程语言中表示文本的数据类型

在Python中可以使用一对双引号或者一对单引号定义一个字符串,但是有些时候会在字符串中相互包含

虽然可以使用\"\'做字符串的转义,但是实际开发中

  • 如果字符串内容需要使用"双引号,可以使用单引号'定义字符串
  • 如果字符串内容需要使用单引号',可以使用双引号"定义字符串

2、示例代码

  1. 示例代码

    1
    2
    3
    4
    5
    6
    str1 = "hello python"
    str2 = "你是'王二狗'么"
    str3 = '你是"李小花"么'
    print(str1)
    print(str2)
    print(str3)

二、去掉空格和特殊符号

1、说明

用于移除字符串头尾指定的字符(默认为空格或者换行符)或字符序列

注意:

方法只能删除开头或是结尾的字符,不能删除中间部分的字符。

2、语法格式

  1. 去掉两边

    1
    str.strip([chars])
  2. 去掉左边

    1
    str.lstrip([chars])
  3. 去掉右边

    1
    str.rstrip([chars]) 

3、参数说明

  • chars

    可选参数,默认去掉空格 移除字符串头尾指定的字符序列

4、返回值

返回删除 string 字符串末尾的指定字符后生成的新字符串

5、示例代码

  1. 去掉两边的空格或者换行符,或者指定的

    1
    2
    3
    4
    5
    6
    7
    8
    # 去掉两边空格和换行符
    In [1]: s = " 花开花落 \t \n"
    In [2]: s.strip()
    Out[2]: '花开花落'
    # 去掉两边指定的字符串
    In [3]: s = "abcdef"
    In [4]: s.strip('f')
    Out[4]: 'abcde'
  2. 去掉右边或者左边

    1
    2
    3
    4
    5
    6
    7
    In [1]: s = " 花开花落 \t \n"

    In [7]: s.lstrip()
    Out[7]: '花开花落 \t \n'

    In [8]: s.rstrip()
    Out[8]: ' 花开花落'

三、字符串的分割

1、说明

按着指定的分隔符对字符串进行切片

2、语法格式

1
str.split(str="", num=string.count(str)).

3、参数

  • str

    分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。

  • num

    分割次数。默认为 -1, 即分隔所有。

4、返回值

列表

5、示例代码

  1. 默认切割

    1
    2
    3
    4
    In [2]: s =  "自古多情空余恨,唯 有 套路 得 人 心"
    In [3]: l = s.split()
    In [4]: l
    Out[4]: ['自古多情空余恨,唯', '有', '套路', '得', '人', '心']
  2. 按着指定字符进行分割

    1
    2
    3
    4
    In [6]: s = "玉-树-临-风-美-少-男-,-揽-镜-自-顾-夜-不-眠"
    In [7]: l = s.split('-')
    In [8]: l
    Out[8]: ['玉', '树', '临', '风', '美', '少', '男', '揽', '镜', '自', '顾', '夜', '不', '眠']
  3. 指定分割次数

    1
    2
    3
    4
    In [9]: s = '我/劝/你/善/良'
    In [10]: l = s.split('/',2)
    In [11]: l
    Out[11]: ['我', '劝', '你/善/良']

四、字符串替换

1、说明

把字符串中的 旧字符串替换成新字符串,如果指定第三个参数max,则替换不超过 max 次

2、语法格式

1
str.replace(old, new[, count])

3、参数说明

  • old

    必要参数,将被替换的子字符串。

  • new

    必要参数,用于替换old子字符串。

  • count

    可选参数, 替换不超过count 次

4、返回值

返回字替换后生成的新字符串

5、示例代码

  1. 替换字符串

    1
    2
    3
    4
    5
    In [1]: s = "道理我都懂,我就是要作一会"

    In [2]: new_s = s.replace('我', '你')
    In [3]: new_s
    Out[3]: '道理你都懂,你就是要作一会'
  2. 替换次数

    1
    2
    3
    4
    In [5]: s = 'abcdefaaa'
    In [6]: new_s = s.replace('a', '-', 3)
    In [7]: new_s
    Out[7]: '-bcdef--a'

五、字符串查找

1、说明

检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1

2、语法格式

1
2
3
find(self, sub, start=None, end=None)
# 从右边开始查找
rfind(str, beg=None end=None)

3、参数说明

  • str

    指定检索的字符串

  • beg

    开始索引,默认为0。

  • end

    结束索引,默认为字符串的长度。

4、返回值

包含子字符串返回开始的索引值,否则返回-1

5、实例代码

  1. 基本查找

    1
    2
    3
    4
    5
    6
    7
    In [1]: s = 'Python 了解一下'
    In [2]: i = s.find('y')
    In [3]: i
    Out[3]: 1

    In [4]: s.find('te')
    Out[4]: -1

  2. 指定位置查找

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    In [5]: i = s.find('y',1,3)
    In [6]: i
    Out[6]: 1

    In [7]: i = s.find('n',1,3)
    In [8]: i
    Out[8]: -1

    In [9]: i = s.find('n',1)
    In [10]: i
    Out[10]: 5
    # 反向查找
    In [11]: i = s.find('n',1,-5)
    In [12]: i
    Out[12]: 5

六、判断字符串

1、说明

判断是否以指定的字符串开始或结束

2、语法格式

1
2
startswith(prefix, start=None, end=None)
endswith(prefix, start=None, end=None)

3、参数说明

  • prefix

    指定的字符串。

  • start

    可选参数,默认0,用于设置字符串检测的起始位置。

  • strend

    可选参数,默认末尾(字符串的长度),用于设置字符串检测的结束位置

4、返回值

如果检测到字符串则返回True,否则返回False。

5、实例代码

  1. 示例1

    1
    2
    3
    4
    In [1]: s = '总有刁民想害朕'
    In [2]: b = s.startswith('总有')
    In [3]: b
    Out[3]: True

  2. 示例2

    1
    2
    3
    In [1]: s = '人生在世 但求心安!心若安,人世静好'
    In [2]: s.endswith('静好')
    Out[2]: True
  3. 示例3

    1
    2
    3
    4
    5
    6
    7
    In [3]: s = 'you can you up  no can no bb'
    # 从索引1位置开始检测
    In [4]: s.startswith('y',1)
    Out[4]: False

    In [5]: s.startswith('c',4,10)
    Out[5]: True

七、统计次数

1、说明

统计字符串里某个字符出现的次数

2、语法格式

1
count(sub[, start[, end]])

3、参数说明

  • sub

    搜索的子字符串

  • start

    字符串开始搜索的位置。默认为0。

  • end

    字符串中结束搜索的位置。默认到末尾。

4、返回值

字符串在字符串中出现的次数

5、实例代码

  1. 示例1

    1
    2
    3
    4
    5
    6
    7
    In [12]:  s = 'you can you up  no can no bb'
    In [13]: s.count('c')
    Out[13]: 2
    In [14]: s.count('you')
    Out[14]: 2
    In [15]: s.count('bb')
    Out[15]: 1

  2. 示例2

    1
    2
    3
    4
    5
    In [16]: s.count('bb',-1)
    Out[16]: 0

    In [17]: s.count('you',10,-1)
    Out[17]: 0

八、字符大小写转化

1、说明

字符串中的小写字母转为大写字母或者将字符串的大写转化成小写。中文无效。通常用在对外部输入的字符串转化之后进行比较

2、语法格式

1
2
upper()
lower()

4、返回值

返回小写字母转为大写字母的字符串

5、实例代码

  1. 小写转大写

    1
    2
    3
    4
    In [18]: s = 'abc'

    In [19]: s.upper()
    Out[19]: 'ABC'

  2. 大写转小写

    1
    2
    3
    In [20]: name = 'Wener'
    In [21]: name.lower()
    Out[21]: 'wener'

九、其它

1、判断

方法名 返回值 说明
isalnum() bool 是否全是字母和数字
isalpha() bool 是否全是
isdigit() bool 是否全是数字
isspace() bool 是否是空白字符,并至少有一个字符
islower() bool 字母是否全是小写
isupper() bool 字母是否全是大写
istitle() bool 是否是首字母大写的