目录
1. 字符串的基本特点
序列性:字符串可以被看作是由单个字符组成的序列。因此,可以通过索引来访问字符串中的单个字符,也可以使用切片来获取子字符串。(字符串的本质是:字符序列)
不可变性:字符串在创建之后不能被修改。这意味着一旦创建了一个字符串对象,它的内容就不可改变。如果需要修改字符串,实际上是创建了一个新的字符串对象。
- Unicode支持:Python中的字符串是Unicode字符串,可以表示世界上几乎所有的字符集,包括ASCII、Latin-1、GB18030等
- Python不支持单字符类型,单字符也是作为一个字符串使用的。
2. 字符串的编码
- Python3直接支持Unicode,可以表示世界上任何书面语言的字 符。
- Python3的字符默认就是16位Unicode编码,ASCII码是 Unicode编码的子集
2.1 内置函数ord()
- 参数:一个字符
- 说明:返回给定字符的 Unicode 码点(整数表示)(可以把字符转换成对应的Unicode码)
- 作用:
ord()
函数用于获取指定字符的 Unicode 码点,即该字符在 Unicode 编码表中的整数值。code_point = ord('A') print(code_point) # 输出 65
2.2 内置函数chr()
- 参数:一个整数
- 说明:返回给定 Unicode 码点的字符( 可以把十进制数字转换成对应的字符)
- 作用:
chr()
函数用于根据给定的 Unicode 码点返回对应的字符。char = chr(65) print(char) # 输出 'A'
3.空字符串和内置函数len()
- 空字符串是指不包含任何字符的字符串。空字符串可以用两个单引号 '' 或双引号 "" 表示。它在逻辑上等同于 False,因此在条件判断中会被视为假值。
empty_string = '' print(len(empty_string)) # 输出: 0
- len() 函数是Python内置函数,用于返回一个序列对象(如字符串、列表、元组等)的长度或元素个数。对于字符串来说,len() 函数返回字符串中字符的个数,包括空格和其他特殊字符。对于列表或元组来说,len() 函数返回其包含的元素个数。
my_string = "Hello, World!" print(len(my_string)) # 输出: 13 my_list = [1, 2, 3, 4, 5] print(len(my_list)) # 输出: 5
4.转义字符
转义字符是指以反斜杠(\)开头的特殊字符序列,用于表示一些无法直接输入或打印的字符,例如换行符、制表符、引号等。当 Python 解释器遇到反斜杠时,它会将反斜杠和其后面的字符组合成一个特殊的字符。
转义字符
描述
(在行尾时)
续行符
\
反斜杠符号
\'
单引号
\"
双引号
\b
退格(Backspace)
\n
换行
\t
横向制表符
\r
回车
# 换行符 print("Hello\nWorld") # 输出: # Hello # World # 制表符 print("Name\tAge") # 输出: # Name Age # 使用单引号和双引号 print('He said, "Python is awesome"') # 输出: # He said, "Python is awesome" # 打印反斜杠 print("C:\\Users\\User\\Desktop") # 输出: # C:\Users\User\Desktop
字符串前面加上 r 或 R,表示原始字符串,其中的反斜杠不会被转义。
# 原始字符串 print(r"Path: C:\Users\User\Desktop") # 输出: # Path: C:\Users\User\Desktop
5. 字符串拼接
5.1 加号运算符进行字符串拼接
first_name = "John" last_name = "Doe" full_name = first_name + " " + last_name print(full_name) # 输出: John Doe
5.2 字符串的 join() 方法
words = ["Hello", "World", "!"] combined_string = " ".join(words) print(combined_string) # 输出: Hello World !
5.3 f-string
name = "Alice" greeting = f"Hello, {name}!" print(greeting) # 输出: Hello, Alice!
5.4 format()
item = "book" price = 20 description = "The {} costs ${:.2f}".format(item, price) print(description) # 输出: The book costs $20.00
6. 字符串复制
使用*可以实现字符串复制
1 a = 'abc'* 3 #结果:'abcabcabc'
7. 不换行打印
我们前面调用print时,会自动打印一个换行符。有时,我们不想换行,不想自动添加换行符。我们可以自己通过参数end = “任意字符串”。实现末尾添加任何内容:
print("a",end=' ') print("b",end='##') # 运行结果:a b## # 不换行打印 print("Hello,", end=" ") print("World!") # 输出: Hello, World! # 使用循环进行不换行打印 for i in range(5): print(i, end=", ") # 输出: 0, 1, 2, 3, 4, # 打印多行内容时不换行 print("This is a multi-line content: ", end="") print("line 1", end="\n") print("line 2", end="\n") # 输出: # This is a multi-line content: line 1 # line 2
8. input() 获取键盘输入
input()
函数用于从用户获取输入。当调用input()
函数时,程序会暂停执行,等待用户输入内容,并在用户按下回车键后将输入的内容作为字符串返回。用户输入的内容可以包含任何类型的数据,但input()
函数始终将其作为字符串处理。# 获取用户输入并打印 name = input("Please enter your name: ") print("Hello, " + name) # 将用户输入转换为整数 age = input("Please enter your age: ") age = int(age) # 将字符串转换为整数 print("You will be " + str(age + 1) + " years old next year.") # 处理用户输入的数值计算 num1 = float(input("Enter a number: ")) num2 = float(input("Enter another number: ")) result = num1 + num2 print("The result of the addition is: " + str(result))
- 首先,我们使用
input()
函数获取用户输入的名字,并对其进行简单的打印。然后,我们获取用户输入的年龄,并将其转换为整数进行计算。最后,我们展示了如何获取用户输入的数字,并进行数值计算。- 需要注意的是,
input()
函数返回的始终是一个字符串,如果需要将其转换为其他类型(例如整数或浮点数),则需要使用相应的转换函数(例如int()
或float()
)来进行转换。另外,当用户输入内容时,程序会一直等待用户按下回车键才会继续执行。9.字符串替换 replace()
new_string = original_string.replace(old, new, count)
original_string
是要进行替换操作的原始字符串。old
是要被替换的子串。new
是要替换成的新子串。count
是一个可选参数,表示最多进行替换的次数。将原始字符串中的 "Hello" 替换为 "Hi"。
original_string = "Hello, World!" new_string = original_string.replace("Hello", "Hi") print(new_string) # 输出: Hi, World!
原始字符串中所有的 "really" 替换为 "definitely"。
message = "I really really like apples" new_message = message.replace("really", "definitely") print(new_message) # 输出: I definitely definitely like apples
原始字符串中的 "one" 替换为 "two",但是限制最多只进行2次替换
text = "one one one one" new_text = text.replace("one", "two", 2) # 最多替换2次 print(new_text) # 输出: two two one one
注意:字符串是不可变的,整个过程中,实际上我们是创建了新的字符串对象,并指向了变量而不是修改了以前的字符串