[Python 基础课程]字符串

发布于:2025-07-02 ⋅ 阅读:(18) ⋅ 点赞:(0)

字符串

字符串几乎是所有编程语言中最常用的数据类型。在 Python 中,我们可以使用引号 ’ 或 " 来创建字符串。

greeting = 'Hello, world!'
name = "Python"
empty_string = ''
number_string = "12345"
mixed_string = "Hello 123 !"

多行字符串

如果想让字符串在代码中展示更加清晰,比如展示出 json 的结构或 json 样式,可以使用多行字符串:

# 使用三引号创建多行字符串表示 SQL
sql_query = """
SELECT column1, column2
FROM table_name
WHERE condition1 = 'value'
  AND condition2 > 10;
"""

print("SQL Query:")
print(sql_query)

# 使用三引号创建多行字符串表示 JSON
json_data = """
{
  "name": "John Doe",
  "age": 30,
  "isStudent": false,
  "address": {
    "street": "123 Main St",
    "city": "Anytown",
    "zipcode": "12345"
  },
  "courses": [
    "Math",
    "Science",
    "History"
  ]
}
"""
print(json_data)

多行字符串和字符串一样,使用三个 ’ 和 " 是一样的

在字符串中使用变量

例子:

word = '好看了'
comment = '这部电影太{}'.format(word)
print(comment)  # 运行结果:这部电影太好看了

如果要在字符串中使用多个变量值,请看下面这个例子:

parameter_w = 'w'
parameter_i = 'n'
string = '{}i{}d'.format(parameter_w, parameter_i)
print(string)

你也可以自己指定顺序,在{}中添加数字**(从0开始)来标记这是第几个空,format中的变量(从左往右,下标依次为0,1,2…)**就会将自己对应的值填入自己下标对应的空:

massage = '{1}在桥上看风景,看{0}的人在楼上看你。' \
          '明月装饰了你的{3},你装饰了别人的{2}。'.format('风景', '你', '梦', '窗子')
print(massage)

上面的代码将会拼出一段诗:

你在桥上看风景,看风景的人在楼上看你。明月装饰了你的窗子,你装饰了别人的梦。

下面是组合原理图:

你看出来是怎么将字符串填进去的吗?

除了使用format()方法将变量值用在字符串中,在 Python3.6 及之后的版本中还引入了 f 字符串:

word = '好看了'
comment = f'这部电影太{word}'
# 运行结果:这部电影太好看了
print(comment)  

comment 变量的值是将字符串中的 {word} 变量的值替换成 word 变量的值后的字符串,这种方式和 JavaScript 很像:

const word = '好看了';
const comment = `这部电影太${word}`;
console.log(comment); // 运行结果:这部电影太好看了

使用这种方式极大的方便了对字符串和变量进行灵活的拼接。

字符串的索引和切片

由于字符串是序列,我们可以通过索引来访问其中的单个字符。Python 中的索引是从 0 开始的。

text = "Python"
first_char = text[0]  # 'P'
second_char = text[1] # 'y'
last_char = text[5]   # 'n'

# 也可以使用负数索引,从末尾开始计数
last_char_again = text[-1] # 'n'
second_to_last = text[-2] # 'o'

print(f"第一个字符: {first_char}")
print(f"最后一个字符: {last_char_again}")

除了访问单个字符,我们还可以使用切片(slicing)来获取字符串的子串。切片的语法是 [start:stop:step],其中:

  • start: 起始索引(包含)。如果省略,默认为 0
  • stop: 结束索引(不包含)。如果省略,默认为字符串的长度
  • step: 步长,表示每隔多少个字符取一个。如果省略,默认为 1
language = "Programming"
sub_string1 = language[0:4]   # "Prog" (从索引 0 到 3)
sub_string2 = language[:7]    # "Program" (从开始到索引 6)
sub_string3 = language[4:]    # "ramming" (从索引 4 到结束)
sub_string4 = language[:]     # "Programming" (复制整个字符串)
sub_string5 = language[::2]   # "Pormn" (每隔一个字符取一个)
sub_string6 = language[::-1]  # "gnimmargorP" (反转字符串)

print(f"子串 1: {sub_string1}")
print(f"反转字符串: {sub_string6}")

常用的字符串操作

Python 提供了丰富的内置方法来操作字符串,以下是一些最常用的:

函数 解释 例子
len(str) 返回字符串的长度 len(“aaa”)
lower() 将字符串中的所有大写字母转换为小写字母 “aaa”.lower()
upper() 将字符串中的所有小写字母转换为大写字母 “aaa”.upper()
strip() 移除字符串开头和结尾的空白字符(空格、制表符、换行符等) " aaa a ".strip()
split(separator) 将字符串根据指定的分隔符分割成一个字符串列表。如果省略分隔符,则默认以空白字符分割 “a,b,c”.split(“,”)
join(iterable) 将一个可迭代对象(如列表、元组)中的字符串连接成一个新的字符串,并在每个字符串之间插入指定的字符串 words = [“Hello”, “world”, “in”, “Python”]
sentence = " ".join(words)

网站公告

今日签到

点亮在社区的每一天
去签到