这一期我们讲字符串。
字符串的创建与赋值
直接赋值:使用单引号`'`、双引号`"`或三引号`'''`或`"""`将字符序列括起来,然后赋值给变量。例如:
str1 = 'Hello'
str2 = "World"
str3 = '''这是一个
跨行的字符串'''
str4 = """另一个
跨行的字符串"""
转义字符:在字符串中,反斜杠`\`用于表示转义字符。
`\n`表示换行
`\t`表示制表符
`\\`表示反斜杠本身
`\'`表示单引号
`\"`表示双引号
`str = 'This is a line.\nThis is another line.'`,输出时会换行显示。
字符串的拼接
使用加号`+`:将两个或多个字符串连接起来。
str1 = "Hello"
str2 = "World"
result = str1 + " " + str2
print(result) # 输出:Hello World
使用`join()`方法:将一个可迭代对象(如列表)中的字符串元素连接成一个字符串,指定的字符串作为分隔符。例如:
list1 = ["Hello", "World", "Python"]
result = " ".join(list1)
print(result) # 输出:Hello World Python
字符串的索引和切片
索引:通过索引访问字符串中的单个字符。索引从 0 开始,正数表示从左到右,负数表示从右到左。例如:
str = "Hello"
print(str[0]) # 输出:H
print(str[-1]) # 输出:o
切片:通过切片操作获取字符串中的一部分。格式为`[start:end:step]`,其中`start`是起始索引(包含),`end`是结束索引(不包含),`step`是步长(默认为 1)。
str = "HelloWorld"
print(str[0:5]) # 输出:Hello
print(str[5:]) # 输出:World
print(str[:5]) # 输出:Hello
print(str[::2]) # 输出:HloWrd
字符串的查找和替换
`find()`方法:查找子字符串在字符串中的位置,返回第一个匹配的索引,如果未找到则返回`-1`。
str = "HelloWorld"
print(str.find("World")) # 输出:5
print(str.find("Python")) # 输出:-1
`index()`方法:与`find()`类似,但如果没有找到子字符串,会抛出`ValueError`异常。
str = "HelloWorld"
print(str.index("World")) # 输出:5
# print(str.index("Python")) # 会抛出 ValueError
`replace()`方法:将字符串中的某些子字符串替换为另一个字符串。例如:
str = "HelloWorld"
result = str.replace("World", "Python")
print(result) # 输出:HelloPython
字符串的大小写转换
`upper()`方法:将字符串中的所有字符转换为大写。
str = "HelloWorld"
print(str.upper()) # 输出:HELLOWORLD
`lower()`方法:将字符串中的所有字符转换为小写。
str = "HelloWorld"
print(str.lower()) # 输出:helloworld
`capitalize()`方法:将字符串的第一个字符转换为大写,其余字符转换为小写。
str = "helloWorld"
print(str.capitalize()) # 输出:Helloworld
`title()`方法:将字符串中每个单词的首字母转换为大写。
str = "hello world"
print(str.title()) # 输出:Hello World
字符串的格式化
使用`%`格式化:通过`%`符号将变量插入到字符串中。
name = "Kuke"
age = 25
print("My name is %s and I am %d years old." % (name, age))
# 输出:My name is Kimi and I am 25 years old.
使用`str.format()`方法:通过`{}`占位符和`format()`方法将变量插入到字符串中。
name = "kuke"
age = 25
print("My name is {} and I am {} years old.".format(name, age))
# 输出:My name is Kimi and I am 25 years old.
使用 f-string(Python 3.6+):通过在字符串前加`f`,并在字符串中使用`{}`包裹变量,实现字符串格式化。
name = "Kuke"
age = 25
print(f"My name is {name} and I am {age} years old.")
# 输出:My name is Kimi and I am 25 years old.
字符串的分割
`split()`方法:根据指定的分隔符将字符串分割成一个列表,默认分隔符是空格。
str = "Hello World Python"
list1 = str.split()
print(list1) # 输出:['Hello', 'World', 'Python']
list2 = str.split(" ")
print(list2) # 输出:['Hello', 'World', 'Python']
list3 = str.split("World")
print(list3) # 输出:['Hello ', ' Python']
字符串的判断
`isalpha()`方法:判断字符串是否只包含字母。
str1 = "Hello"
str2 = "Hello123"
print(str1.isalpha()) # 输出:True
print(str2.isalpha()) # 输出:False
`isdigit()`方法:判断字符串是否只包含数字。
str1 = "123"
str2 = "123a"
print(str1.isdigit()) # 输出:True
print(str2.isdigit()) # 输出:False
`isspace()`方法:判断字符串是否只包含空格。
str1 = " "
str2 = " a "
print(str1.isspace()) # 输出:True
print(str2.isspace()) # 输出:False
`startswith()`方法:判断字符串是否以指定的子字符串开头。
str = "HelloWorld"
print(str.startswith("Hello")) # 输出:True
print(str.startswith("World")) # 输出:False
`endswith()`方法:判断字符串是否以指定的子字符串结尾。例如:
str = "HelloWorld"
print(str.endswith("World")) # 输出:True
print(str.endswith("Hello")) # 输出:False
字符串的去空格
`strip()`方法:去除字符串首尾的空格。
str = " Hello World "
print(str.strip()) # 输出:Hello World
`lstrip()`方法:去除字符串左侧的空格。
str = " Hello World"
print(str.lstrip()) # 输出:Hello World
`rstrip()`方法:去除字符串右侧的空格。
str = "Hello World "
print(str.rstrip()) # 输出:Hello World
这一期我们先到这里,下一期我们讲列表与元组。