1. 字符串定义
在Python中,字符串是一种数据类型,用于表示文本数据。字符串是由字符组成的序列,可以包含字母、数字、符号和空格等字符。在Python中,你可以使用单引号(')或双引号(")来定义字符串。
1)使用单引号或双引号创建字符串
str1 = 'Hello, world!'
str2 = "Python Programming"
2) 使用三引号创建多行字符串
multiline_str = '''This is a
multi-line
string.'''
2.访问字符串中的值
Python不支持单字符类型,单字符在Python中也是作为一个字符串使用。
Python中使用索引来访问字符串,可以使用方括号[](切片)来截取字符串。字符串是一个字符序列,每个字符都有与之关联的索引。
字符串的截取的语法格式如下:
# 索引值以0为开始值,-1为从末尾的开始位置
变量[头下标:尾下标]
示例:
# 创建一个字符串
my_string = "Hello, World!"
# 访问单个字符
first_char = my_string[0] #获取第一个字符,索引为0
second_char = my_string[1] # 获取第二个字符,索引为1
# 使用负数索引从末尾开始访问字符
last_char = my_string[-1] # 获取最后一个字符
second_last_char = my_string[-2] # 获取倒数第二个字符
# 切片(获取子串)
substring = my_string[7:12] # 获取索引7到11的子串,不包括索引12
# 通过切片获取从开始到指定位置的子串
prefix = my_string[:5] # 获取从开头到索引4的子串
# 通过切片获取从指定位置到末尾的子串
suffix = my_string[7:] # 获取从索引7到末尾的子串
# 打印结果
print(first_char) # 输出:H
print(last_char) # 输出:!
print(substring) # 输出:World
print(prefix) # 输出:Hello
print(suffix) # 输出:World!
3. 字符串更新
在Python中,字符串是不可变(immutable)的,这意味着一旦创建,就不能直接修改字符串的内容,但可以通过创建一个新的字符串来实现修改的效果。
3.1 切片和拼接
# 尝试修改字符串中的某个字符(这会引发错误)
# my_string[0] = 'h' # TypeError: 'str' object does not support item assignment
# 创建一个新字符串,实现修改的效果
new_string = 'h' + my_string[1:]
print(new_string) # 输出:hello, World!
# 切片和拼接
my_string = "Python"
updated_string = my_string[:4] + "ic" + my_string[5:]
print(updated_string) # 输出:Pythonic
3.2 使用str.join()方法
words = ["Hello", "World"]
result = " ".join(words)
print(result) # 输出:Hello World
3.3 格式化字符串
name = "Alice"
age = 30
formatted_str = "My name is {} and I am {} years old.".format(name, age)
print(formatted_str)
# 输出:My name is Alice and I am 30 years old.
3.4 使用f-字符串(Python3.6版本以上)
name = "Bob"
age = 25
formatted_str = f"My name is {name} and I am {age} years old."
print(formatted_str)
# 输出:My name is Bob and I am 25 years old.
这些方法中的每一个都会创建一个新的字符串,而不是在原始字符串上直接修改。在实际编程中,选择哪种方式取决于具体的项目需求。如果需要频繁修改字符串,可能需要考虑使用列表(list)或其他可变对象。
4. 转义字符
在Python字符串中,转义字符用于表示一些特殊字符或执行特定的操作。转义字符以反斜杠 \ 开始,后面跟着一个或多个字符。
print('\'Hello, world!\'') # 输出:'Hello, world!'
print("Hello, world!\nHow are you?") # 输出:Hello, world!
# How are you?
print("Hello, world!\tHow are you?") # 输出:Hello, world! How are you?
print("Hello,\b world!") # 输出:Hello world!
print("Hello,\f world!") # 输出:
# Hello,
# world!
print("A 对应的 ASCII 值为:", ord('A')) # 输出:A 对应的 ASCII 值为: 65
print("\x41 为 A 的 ASCII 代码") # 输出:A 为 A 的 ASCII 代码
decimal_number = 42
binary_number = bin(decimal_number) # 十进制转换为二进制
print('转换为二进制:', binary_number) # 转换为二进制: 0b101010
octal_number = oct(decimal_number) # 十进制转换为八进制
print('转换为八进制:', octal_number) # 转换为八进制: 0o52
hexadecimal_number = hex(decimal_number) # 十进制转换为十六进制
print('转换为十六进制:', hexadecimal_number) # 转换为十六进制: 0x2a