文章目录
- 一. 字符串的定义
- 二. 字符串的基本用法
- 1. 访问字符串中的字符
- 2. 字符串切片
- 3. 字符串拼接
- 4. 字符串重复
- 5.字符串比较
- 6.字符串成员运算
- 三. 字符串的常用方法
- 1. `len()` 函数
- 2. `upper()` 和 `lower()` 方法
- 3. `strip()` 方法
- 4. `replace()` 方法
- 5. `split()` 方法
- 四. 字符串的进阶用法
- 1. 格式化字符串
- 2. 字符串的转义字符
- 3. 字符串的编码与解码
- 4.原始字符串
- 5.字符串的特色表示
在 Python 里,字符串属于内置的数据类型,用来表示文本数据。
一. 字符串的定义
在 Python 中,定义字符串的方式多样且灵活。单引号是常用的一种,如 str1 = ‘Hello, World!’,能简洁地包裹普通文本。双引号同样适用,str2 = “Python is great”,与单引号在功能上并无本质区别,主要用于满足不同场景下代码风格或字符串内容中包含单引号的情况 。而三引号则独具魅力,str3 = ‘’‘This is a multi - line string.’‘’,它允许创建多行字符串,对于需要保留格式的文本,如文档注释、诗歌等,极为便利。字符串中的字符类型丰富,除常见的英文字母、特殊符号外,中文字符、日文假名、希腊字母以及 Emoji 字符(如:💩、🐷、🀄️)等均可包含其中,极大拓展了字符串的表现力。。
# 使用单引号定义字符串
str1 = 'Hello, World!'
# 使用双引号定义字符串
str2 = "Python is great"
# 使用三引号定义多行字符串
str3 = '''This is a
multi - line string.'''
二. 字符串的基本用法
1. 访问字符串中的字符
字符串是一个序列,你可以通过索引来访问其中的字符,索引从 0 开始。可以精准访问其中字符
str4 = "Hello"
print(str4[0]) # 输出 'H'
print(str4[-1]) # 输出 'o',负索引表示从字符串末尾开始计数
2. 字符串切片
你可以使用切片来获取字符串的一部分。
str5 = "Python Programming"
print(str5[0:6]) # 输出 'Python'
print(str5[7:]) # 输出 'Programming'
3. 字符串拼接
可以使用 +
运算符来拼接两个或多个字符串。
str6 = "Hello"
str7 = " World"
print(str6 + str7) # 输出 'Hello World'
4. 字符串重复
使用 *
运算符可以重复字符串。
str8 = "Hi"
print(str8 * 3) # 输出 'HiHiHi'
5.字符串比较
可以使用比较运算符(如 ==、!=、<、>、<=、>=)对字符串进行比较。比较时是按照字符的 ASCII 码值逐字符进行比较的。
str9 = "apple"
str10 = "banana"
print(str9 == str10) # 输出: False
print(str9 < str10) # 输出: True,因为 'a' 的 ASCII 码值小于 'b'
6.字符串成员运算
使用 in
和not in
运算符可以检查一个字符串是否包含另一个字符串
str11 = "hello python"
print("python" in str11) # 输出: True
print("javascript" not in str11) # 输出:True
三. 字符串的常用方法
1. len()
函数
用于返回字符串的长度。
str9 = "Python"
print(len(str9)) # 输出 6
2. upper()
和 lower()
方法
upper()
方法将字符串中的所有字母转换为大写,lower()
方法将字符串中的所有字母转换为小写。
str10 = "Hello"
print(str10.upper()) # 输出 'HELLO'
print(str10.lower()) # 输出 'hello'
3. strip()
方法
用于去除字符串首尾的空白字符。
str11 = " Hello "
print(str11.strip()) # 输出 'Hello'
4. replace()
方法
用于替换字符串中的指定子字符串。
str12 = "Hello, World"
print(str12.replace("World", "Python")) # 输出 'Hello, Python'
5. split()
方法
根据指定的分隔符将字符串分割成一个列表。
str13 = "apple,banana,cherry"
print(str13.split(",")) # 输出 ['apple', 'banana', 'cherry']
四. 字符串的进阶用法
1. 格式化字符串
Python 提供了多种字符串格式化的方式,如旧式的 %
格式化、str.format()
方法和 f - 字符串。
旧式的 %
格式化
name = "Alice"
age = 25
print("My name is %s and I am %d years old." % (name, age))
str.format()
方法
name = "Bob"
age = 30
print("My name is {} and I am {} years old.".format(name, age))
f - 字符串(Python 3.6+)
name = "Charlie"
age = 35
print(f"My name is {name} and I am {age} years old.")
2. 字符串的转义字符
在字符串中,你可以使用转义字符来表示一些特殊字符,如换行符 \n
、制表符 \t
等。
print("Hello\nWorld") # 输出两行:Hello 和 World
3. 字符串的编码与解码
在 Python 中,字符串可以进行编码(将字符串转换为字节序列)和解码(将字节序列转换为字符串)。
str14 = "你好"
# 编码
bytes_str = str14.encode('utf-8')
# 解码
decoded_str = bytes_str.decode('utf-8')
print(decoded_str) # 输出 '你好'
4.原始字符串
Python 中有一种以r
或R
开头的字符串,这种字符串被称为原始字符串,意思是字符串中的每个字符都是它本来的含义,没有所谓的转义字符。例如,在字符串'hello\n'
中,\n
表示换行;而在r'hello\n'
中,\n
不再表示换行,就是字符\
和字符n
。大家可以运行下面的代码,看看会输出什么。
s1 = '\it \is \time \to \read \now'
s2 = r'\it \is \time \to \read \now'
print(s1)
print(s2)
说明:上面的变量
s1
中,\t
、\r
和\n
都是转义字符。\t
是制表符(table),\n
是换行符(new line),\r
是回车符(carriage return)相当于让输出回到了行首。对比一下两个
5.字符串的特色表示
Python 中还允许在\
后面还可以跟一个八进制或者十六进制数来表示字符,例如\141
和\x61
都代表小写字母a
,前者是八进制的表示法,后者是十六进制的表示法。另外一种表示字符的方式是在\u
后面跟 Unicode 字符编码,例如\u9a86\u660a
代表的是中文“骆昊”。运行下面的代码,看看输出了什么。
s1 = '\141\142\143\x61\x62\x63'
s2 = '\u9a86\u660a'
print(s1)
print(s2)