python基础之字符串处理

1. 字符串拼接

在 Python 中,字符串可以通过加号(+)来拼接。例如,我们可以使用加号将两个字符串拼接在一起:

name = 'Alice'

age = 20

info = 'Hello, my name is ' + name + ' and I am ' + str(age) + ' years old.'

print(info) # 输出: 'Hello, my name is Alice and I am 20 years old.'

在上面的代码中,我们首先定义了一个字符串变量 `name` 和一个数值变量 `age`,然后使用加号将它们与其他字符串拼接在一起,最终得到了一个字符串变量 `info`。

在 Python 中,我们也可以使用 f-string 来拼接字符串。f-string 是 Python 3.6 新增的一种字符串格式化方式,它使用花括号 {} 来表示要替换的变量或表达式,并且在字符串前加上字母 f 表示这是一个 f-string。例如:

name = 'Alice'

age = 20

info = f'Hello, my name is {name} and I am {age} years old.'

print(info) # 输出: 'Hello, my name is Alice and I am 20 years old.'

1.1 字符串格式化

在 Python 中,我们也可以使用 format 方法来格式化字符串。格式化字符串时,我们可以使用花括号 {} 表示要替换的变量或表达式,并且在花括号内使用冒号 : 来指定格式化方式。常见的格式化方式有以下几种:

- '{:d}':将变量或表达式格式化为整数。

- '{:f}':将变量或表达式格式化为浮点数。

- '{:s}':将变量或表达式格式化为字符串。

- '{:x}':将变量或表达式格式化为十六进制数。

例如:

num1 = 10

num2 = 3

result1 = '{:d} ÷ {:d} = {:d}'.format(num1, num2, num1 // num2)

result2 = '{:.2f}'.format(num1 / num2)

result3 = '{:s} world!'.format('Hello')

result4 = '{:x}'.format(255)

print(result1) # 输出: '10 ÷ 3 = 3'

print(result2) # 输出: '3.33'

print(result3) # 输出: 'Hello world!'

print(result4) # 输出: 'ff'

2. 字符串切片

在 Python 中,我们可以使用下标来访问字符串中的单个字符。字符串中的第一个字符的下标为 0,依次递增。例如,我们可以使用下标访问字符串中的第一个字符:

word = 'hello'

print(word[0]) # 输出: 'h'

在 Python 中,我们还可以使用切片(slice)来访问字符串的一段子串。切片的语法为 `string[start:end:step]`,其中 `start` 表示切片的起始下标,`end` 表示切片的结束下标(不包含在切片中),`step` 表示切片的步长(默认为 1)。例如:

word = 'hello'

print(word[1:4]) # 输出: 'ell'

在上面的代码中,我们使用切片访问字符串 `word` 中从下标 1 开始到下标 4(不包含在切片中)的子串,即字符串 'ell'。

2.1 切片中的索引和步长

在使用切片时,我们可以省略参数。省略参数的默认值如下:

- `start` 默认为 0(如果省略了 `start` 和 `end`,则返回完整的字符串)。

- `end` 默认为字符串的长度。

- `step` 默认为 1。

例如:

word = 'hello'

print(word[:3]) # 输出: 'hel'

print(word[1:]) # 输出: 'ello'

print(word[::2]) # 输出: 'hlo'

在上面的代码中,我们分别省略了参数 `start`、`end` 和 `step`,来实现不同的字符串切片操作。

3. 字符串处理函数

Python 中内置了一些字符串处理函数,可以帮助我们快速地对字符串进行操作。下面介绍几个常用的字符串处理函数。

3.1 len 函数

len 函数可以返回字符串的长度。例如:

word = 'hello'

print(len(word)) # 输出: 5

3.2 strip 函数

strip 函数可以用来去除字符串开头和结尾的空格。例如:

word = '  hello  '

print(word.strip()) # 输出: 'hello'

3.3 split 函数

split 函数可以将字符串按照指定的分隔符分割成一个列表。例如:

sentence = 'I love Python'

words = sentence.split(' ')

print(words) # 输出: ['I', 'love', 'Python']

在上面的代码中,我们将字符串 `sentence` 按照空格分隔成了一个列表 `['I', 'love', 'Python']`。

3.4 join 函数

join 函数可以将一个包含字符串的列表按照指定的分隔符拼接成一个字符串。例如:

words = ['I', 'love', 'Python']

sentence = ' '.join(words)

print(sentence) # 输出: 'I love Python'

在上面的代码中,我们将列表 `['I', 'love', 'Python']` 中的字符串按照空格拼接成了一个字符串 `'I love Python'`。

3.5 replace 函数

replace 函数可以在字符串中替换指定的子串。例如:

sentence = 'I love Java'

new_sentence = sentence.replace('Java', 'Python')

print(new_sentence) # 输出: 'I love Python'

在上面的代码中,我们将字符串 `sentence` 中的子串 `'Java'` 替换成了 `'Python'`。

4. 练习:将英文句子反转

我们来做一个小练习,在不使用任何字符串处理函数的情况下,将一个英文句子反转。

我们可以使用字符串切片来实现。首先,我们将整个句子切成一个个单词,然后将这些单词反转并拼接起来。

sentence = 'I love Python'

words = []

i = 0

while i < len(sentence):

# 找到下一个空格的位置

j = sentence.find(' ', i)

if j == -1:

# 如果找不到空格,则说明当前已经是最后一个单词了

j = len(sentence)

# 取出当前单词并添加到列表中

word = sentence[i:j]

words.append(word.strip())

# 将 i 移到下一个单词的起始位置

i = j + 1

# 反转单词列表并拼接成一个字符串

reversed_words = ' '.join(words[::-1])

print(reversed_words) # 输出: 'Python love I'

在上面的代码中,我们先将字符串 `sentence` 拆分成一个个单词,并将它们存储到列表 `words` 中。然后,我们使用切片将列表 `words` 反转,并将它们拼接成一个字符串。最终得到了反转后的英文句子 `'Python love I'`。

后端开发标签