Python 使用字符串

  • Post category:Python

一、Python字符串简介

Python中的字符串是不可变的序列,即一旦创建,就不能直接更改该序列的元素。Python字符串用单引号、双引号或三引号括起来,且没有字符类型,只有字符串类型。其中单引号和双引号的作用相同,而三引号可用于表示多行字符串。

二、Python字符串基本操作

  1. 字符串的索引

在Python中,可以使用索引来访问字符串中的单个字符,索引从0开始,同时也支持从末尾往前的负数索引,如下所示:

>>> s = 'Hello World'
>>> s[0]  # 访问第一个字符
'H'
>>> s[-1]  # 访问最后一个字符
'd'
  1. 字符串的切片

除了单个字符,Python还提供了切片来获取字符串的子串,切片操作包括start:end:step三个参数,其中start表示起始位置(包含该位置对应的元素),end表示结束位置(不包含该位置对应的元素),step表示步长(默认为1),如下所示:

>>> s = 'Hello World'
>>> s[0:5]  # 获取前5个字符
'Hello'
>>> s[6:]  # 获取第7个字符到最后一个字符
'World'
>>> s[::2]  # 获取每隔一个字符的子串
'HloWrd'
  1. 字符串的拼接

Python提供了多种方法来实现字符串的拼接,可以使用加号(+)或逗号(,)来连接多个字符串,也可以使用字符串的join()方法来连接多个字符串,如下所示:

>>> s1 = 'Hello'
>>> s2 = 'World'
>>> s = s1 + ' ' + s2  # 使用+连接
>>> print(s)
Hello World
>>> s = s1, s2  # 使用,连接
>>> print(s)
('Hello', 'World')
>>> s = ' '.join([s1, s2])  # 使用join()方法连接
>>> print(s)
Hello World
  1. 字符串的重复

可以使用乘号(*)来实现字符串的重复,如下所示:

>>> s = 'Hello'
>>> s = s * 3
>>> print(s)
HelloHelloHello
  1. 字符串的长度

可以使用len()函数来获取字符串的长度,如下所示:

>>> s = 'Hello World'
>>> print(len(s))
11

三、Python字符串的常用方法

Python字符串提供了丰富的方法来处理文本,下面介绍其中几个重要的方法。

  1. 字符串的查找和判断

(1)find()方法

find()方法用于查找字符串中某个子串的位置,如果找到则返回该子串的起始位置,否则返回-1。find()方法也支持指定起始位置和结束位置,如下所示:

>>> s = 'Hello World'
>>> s.find('W')
6
>>> s.find('o', 5)
7
>>> s.find('z')
-1

(2)index()方法

index()方法与find()方法类似,但是如果找不到指定的子串,则会抛出ValueError异常,如下所示:

>>> s = 'Hello World'
>>> s.index('W')
6
>>> s.index('o', 5)
7
>>> s.index('z')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: substring not found

(3)startswith()和endswith()方法

startswith()方法用于检查字符串是否以指定的子串开头,endswith()方法用于检查字符串是否以指定的子串结尾,如下所示:

>>> s = 'Hello World'
>>> s.startswith('He')
True
>>> s.endswith('d')
True

(4)in和not in运算符

in运算符用于检查一个字符串是否包含另一个字符串,not in运算符则用于检查一个字符串是否不包含另一个字符串,如下所示:

>>> s = 'Hello World'
>>> 'o' in s
True
>>> 'z' in s
False
>>> 'z' not in s
True
  1. 字符串的替换和插入

(1)replace()方法

replace()方法用于替换字符串中某个子串,如下所示:

>>> s = 'Hello World'
>>> s.replace('o', 'a')
'Hella Warld'

(2)lower()和upper()方法

lower()方法用于把字符串转换为小写字母形式,upper()方法用于把字符串转换为大写字母形式,如下所示:

>>> s = 'Hello World'
>>> s.lower()
'hello world'
>>> s.upper()
'HELLO WORLD'

(3)strip()方法

strip()方法用于去除字符串开头和结尾的空格和换行符等特殊字符,如下所示:

>>> s = '  Hello World  \n'
>>> s.strip()
'Hello World'

(4)split()方法

split()方法用于分割字符串,它可以指定分隔符,默认为所有空白字符(空格、换行符、制表符等),如下所示:

>>> s = 'Hello World'
>>> s.split()
['Hello', 'World']
>>> s = '1,2,3,4,5'
>>> s.split(',')
['1', '2', '3', '4', '5']
  1. 字符串的格式化

字符串的格式化是指把一个包含占位符的模板字符串和一个或多个变量插入到模板字符串中生成一个新的字符串的过程。Python字符串的格式化有多种方式,下面介绍两种主要方式。

(1)%运算符

%运算符是最早也是最流行的字符串格式化方式之一,它支持的占位符有%d(整数)、%f(浮点数)、%s(字符串)等,如下所示:

>>> age = 20
>>> name = '小明'
>>> print('%s今年%d岁' % (name, age))
小明今年20岁

(2)format()方法

format()方法是Python3新增的字符串格式化方法,它使用一对花括号{}作为占位符,并可以通过位置或关键字来指定对应的变量,如下所示:

>>> age = 20
>>> name = '小明'
>>> print('{}今年{}岁'.format(name, age))
小明今年20岁
>>> print('{1}今年{0}岁'.format(age, name))
小明今年20岁
>>> print('{name}今年{age}岁'.format(name=name, age=age))
小明今年20岁

四、示例说明

  1. 判断一个字符串是不是回文字符串

回文字符串是指正序和倒序读都是一样的字符串。可以通过判断字符串和它的反转字符串是否一样来判断是否为回文字符串,示例代码如下:

s = input('请输入一个字符串:')
if s == s[::-1]:
    print('是回文字符串')
else:
    print('不是回文字符串')
  1. 统计一个字符串中每个字符出现的次数

可以使用字典来统计每个字符出现的次数,示例代码如下:

s = input('请输入一个字符串:')
count = {}
for c in s:
    if c in count:
        count[c] += 1
    else:
        count[c] = 1
print(count)

以上就是Python字符串的完整攻略,希望对您有所帮助。