一、字符串的操作
基础先行:
len() 是 Python 的内置函数,用于返回对象(如字符串、列表、元组等)的长度或元素个数。
+ 运算符能把多个字符串连接成一个新的字符串。只需将需要拼接的字符串用 + 连接起来即可。运算符只能用于字符串类型的拼接,如果操作数中有非字符串类型,需要先将其转换为字符串类型。每次使用 + 运算符,Python 都会创建一个新的字符串对象,频繁的内存分配和复制操作会消耗大量时间和资源。
age = 25
# 错误示例:print("My age is " + age)
# 正确示例
print("My age is " + str(age))
对于大量字符串拼接的场景,推荐使用 join() 方法,它会预先计算所有字符串的总长度,然后一次性分配内存,性能更高。
# 使用空字符串连接列表元素
str_list = ['Hello', 'World', 'Python']
result = ''.join(str_list)
print(result)
# 输出: HelloWorldPython
#使用逗号连接元组元素
str_tuple = ('apple', 'banana', 'cherry')
result = ', '.join(str_tuple)
print(result)
# 输出: apple, banana, cherry
Python 字符串是可索引的序列,可通过索引访问字符串中的单个字符。索引从 0 开始,表示字符串的第一个字符,索引1表示第二个字符,负数索引表示从字符串末尾开始计数,索引-1表示最后一个字符。
除了通过索引访问单个字符,还能使用切片访问字符串的子串。切片语法是 [start:stop:step] , start 是起始索引, stop 是结束索引(不包含,取左不取右), step 是步长。
greeting = "Hello Python"
# 获取 "Hello"
sub_str = greeting[0:5]
print(sub_str)
# 反转字符串
reverse_str = greeting[::-1]
print(reverse_str)
#输出
Hello
nohtyP olleH
upper() 和 lower() :将字符串转换为全大写或全小写。
greeting = "Hello Python"
print(greeting.upper())
print(greeting.lower())
#输出
HELLO PYTHON
hello python
strip() :去除字符串首尾的空白字符。
greeting = " Hello Python "
print(greeting.strip())
#输出
Hello Python
题目: 定义两个字符串变量,str1 赋值为 “Hello”,str2 赋值为 “Python”。将这两个字符串拼接起来(中间加一个空格),并将结果存储在变量 greeting 中;计算 greeting 字符串的长度,存储在变量 length 中;获取 greeting 字符串的第一个字符,存储在变量 first_char 中。然后,使用 f-string 分多行打印出类似以下格式的信息:
拼接结果: Hello Python
字符串长度: 12
第一个字符: H
第二个字符:e
最后一个字符是:n
代码:
# 定义字符串变量
str1 = "Hello"
str2 = "Python"
# 拼接字符串
greeting = str1 + " " + str2
# 计算字符串长度
length = len(greeting)
# 获取指定位置的字符
first_char = greeting[0]
second_char = greeting[1]
last_char = greeting[-1]
# 使用 f-string 分多行打印结果
print(f"拼接结果: {greeting}")
print(f"字符串长度: {length}")
print(f"第一个字符: {first_char}")
print(f"第二个字符: {second_char}")
print(f"最后一个字符是: {last_char}")
基础先行:
用于比较两个值,返回布尔类型( True 或 False )的结果。
> :大于,判断左边的值是否大于右边的值 。
<= :小于等于,判断左边的值是否小于或等于右边的值 。
!= :不等于,判断两个值是否不相等。
==:用于判断两个值是否相等。若相等返回 True ,否则返回 False。
数值类型 :可直接比较大小。
字符串类型 :按字典顺序比较,即依据字符的 Unicode 编码值(在计算机中,每个字符都对应一个唯一的 Unicode 编码值)比较。Unicode 编码设计时兼容了 ASCII 编码,因此ASCII 编码中的字符所对应的Unicode码点和 ASCII 编码值相同。所以字符 'a' 在 Unicode 里的十进制编码值同样是 97,对应的十六进制是 U+0061 。
str3 = "apple"
str4 = "banana"
print(str3 < str4)
# 输出: True,因为 'a' 的 Unicode 编码小于 'b' 的
列表、元组 :从第一个元素开始依次比较,若对应位置的元素可以比较(类型相同且支持比较操作),则比较它们的大小。如果元素不相等,比较结果就是整个列表的比较结果。如果元素相等,则继续比较下一个位置的元素。若其中一个列表在比较过程中先遍历完,另一个列表还有剩余元素,则较短的列表被认为小于较长的列表。
list1 = [1, 2, 3, 4]
list2 = [1, 2, 4]
print(list1 < list2)
# 输出: True
题目: 定义两个整数变量,score_a 赋值为 75,score_b 赋值为 90。比较 score_a 是否大于 score_b,将比较结果(布尔值)存储在变量 is_a_higher 中;比较 score_a 是否小于等于 score_b,将结果存储在变量 is_a_lower_or_equal 中;比较 score_a 是否不等于 score_b,将结果存储在变量 is_different 中。然后,使用 f-string 分三行打印出类似以下格式的信息:
75 是否大于 90: False
75 是否小于等于 90: True
75 是否不等于 90: True
代码:
# 定义整数变量并赋值
score_a = 75
score_b = 90
# 进行比较并存储结果
is_a_higher = score_a > score_b
is_a_lower_or_equal = score_a <= score_b
is_different = score_a != score_b
# 使用 f-string 分三行打印结果
print(f"{score_a} 是否大于 {score_b}: {is_a_higher}")
print(f"{score_a} 是否小于等于 {score_b}: {is_a_lower_or_equal}")
print(f"{score_a} 是否不等于 {score_b}: {is_different}")
@浙大疏锦行