[Python 基础课程]字符串
字符串
字符串几乎是所有编程语言中最常用的数据类型。在 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
: 起始索引(包含)。如果省略,默认为 0stop
: 结束索引(不包含)。如果省略,默认为字符串的长度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) |