Python str字符串类型的用法(附带实例)
字符串(str)是 Python 中的基础数据类型之一,常用于表示文本信息,比如名字、地址等。
在 Python 程序中,字符串是由零个或多个字符组成的序列,可以包含字母、数字、符号、空格等。Python 中的字符串是不可变的,一旦创建,就不能直接修改其中的内容。
字符串可以用单引号('
)、双引号("
)或三引号('''
或 """
)来定义。例如:
- s1 = "Hello" # 双引号
- s2 = 'World' # 单引号
- s3 = '''这是
- 多行字符串''' # 三引号
三引号则适合多行文本或文档字符串。单引号和双引号功能相同,选择哪种取决于字符串中是否包含引号。例如:
- # 当字符串中包含单引号时,使用双引号来定义字符串
- sentence_with_single_quote = "It's a sunny day."
- # 当字符串中包含双引号时,使用单引号来定义字符串
- sentence_with_double_quote = 'He said, "Let\'s go for a walk."'
Python str字符串类型的基本操作
1) 拼接与重复
字符串可以用 + 进行拼接,用 * 进行重复:
- s1 = "Hello"
- s2 = "Python"
- s3 = s1 + " " + s2 # 拼接
- s4 = s1 * 3 # 重复
- print(s3) # 输出 Hello Python
- print(s4) # 输出 HelloHelloHello
2) 索引与切片
字符串是一个有序序列,可以通过索引访问单个字符,或通过切片获取子字符串。索引从 0 开始,负数则表示从末尾计数。
s[start:stop:step] - start: 开始位置(包含),省略则从头开始 - stop: 结束位置(不包含),省略则到末尾 - step: 步长,默认为 1,负数表示反向
例如:
- s = "Python"
- print(s[0]) # 输出 P
- print(s[-1]) # 输出 n
- print(s[1:4]) # 输出 yth
- print(s[:3]) # 输出 Pyt
- print(s[::2]) # 输出 Pto(每隔一个字符)
- print(s[::-1]) # 输出 nohtyP(反转)
3) str类型转换与检查
可以用 str() 将其他类型转换为字符串,用 type()
或 isinstance()
检查类型:
- x = str(123) # 整数转字符串
- y = str(3.14) # 浮点数转字符串
- print(x) # 输出 "123"
- print(type(y)) # 输出
- print(isinstance(x, str)) # 输出 True
4) str字符串中的转义字符
如果字符串中需要包含引号或其他特殊字符,可以使用转义字符 \
。以下是常见的转义序列:
\n 换行 \t 制表符(Tab) \' 单引号 \" 双引号 \\ 反斜杠本身
例如:
- s1 = "She said, \"Hi!\""
- s2 = 'It\'s raining'
- s3 = "第一行\n第二行"
- print(s1) # 输出 She said, "Hi!"
- print(s2) # 输出 It's raining
- print(s3) # 输出 第一行(换行)第二行
如果不想处理转义,可以使用原始字符串(raw string),在字符串前加 r
:
- s = r"C:\new\test"
- print(s) # 输出 C:\new\test
Python str字符串中嵌入变量
Python 允许往字符串中嵌入变量,实现方式有以下几种:1) 直接嵌入表达式
我们可以直接在字符串中嵌入变量或者表达式。例如:
- name = "Alice"
- age = 20
- print(f"姓名:{name},年龄:{age}")
注意,直接在字符串中嵌入表达式时,要在 ""
前加 f
。 运行上述代码,结果为:
姓名:Alice,年龄:20
2) 使用format()函数
也可以借助 format() 函数通过占位符{}
插入变量:例如:
- score = 95
- print("得分:{}".format(score))
3) 使用 % 运算符
较老的方式是用%
,类似 C 语言的格式化。例如:
- price = 12.5
- print("价格:%.1f" % price)
总结
在 Python 中使用 str 字符串,还有以下几点需要注意:-
不可变性:不能直接修改字符串,例如
s[0] = 'x'
会报错; -
索引越界:访问超出范围的索引会抛出
IndexError;
-
空字符串:空字符串
""
是合法的,长度为 0。