天池Python训练营
Day05
字符串和字典
字符串
1.字符串的定义
- Python 中字符串被定义为引号之间的字符集合。
- Python 支持使用成对的 单引号 或 双引号。
#例1
str1 = 'I love Python!'
str2 = "I love Python!"
#以上两条代码中,单引号和双引号是等效的。
print(str1)
print(str2)
I love Python!
I love Python!
如果字符串中需要出现特殊符号,则需要使用转义符号\来进行转义,否则会被视为普通字符或者出现语法错误。
#例2:
#不使用转义符时
str3 = 'let's go'
print(str3)
File "<ipython-input-4-59604bc18ddd>", line 3
str3 = 'let's go'
^
SyntaxError: invalid syntax
#使用转义符时
str4 = 'let\'s go'
print(str4)
let's go
#若特殊符号为单引号或者双引号时,可以在外层使用不同的引号来区别
#例3
str5 = "let's go"
str6 = '"my book"'
print(str5)
print(str6)
let's go
"my book"
- Python 的常用转义字符
转义字符 | 描述 |
---|---|
\\ | 反斜杠符号 |
\' | 单引号 |
\" | 双引号 |
\n | 换行 |
\t | 横向制表符(TAB) |
\r | 回车 |
也可以在原始字符串前面加一个英文字母r
#例4
str7 = 'C:\\Program Files\\Intel\\Wifi\\Help'
str8 = r'C:\Program Files\Intel\Wifi\Help'
#以上两种表示方式是等效的
print(str7)
print(str8)
C:\Program Files\Intel\Wifi\Help
C:\Program Files\Intel\Wifi\Help
也可以使用三引号,允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。
#例5
str9 = """多行字符串示例:
里面可以包含单引号',双引号",也可以包含换行符\n,
制表符\tab"""
print(str9)
多行字符串示例:
里面可以包含单引号',双引号",也可以包含换行符
,
制表符 ab
2.字符串的切片与拼接
字符串的切片与拼接要注意以下几点:
- 字符串是不可修改的
- 字符串的索引也是从0开始
- 切片通常写成 start:end 这种形式,包括「start 索引」对应的元素,不包括「end索引」对应的元素。
- 索引值可正可负,正索引从 0 开始,从左往右;负索引从 -1 开始,从右往左。使用负数索引时,会从最后一个元素开始计数。最后一个元素的位置编号是 -1。
- 同样使用len()函数来获取字符串的长度。
#例6
str10 = 'abcdefghijk'
print(len(str10)) #获取字符串的长度
print(str10[0]) #获取字符串第一个字符
print(str10[-1]) #获取字符串最后一个字符
print(str10[2:4]) #获取字符串第3到第4个字符
print(str10[:5]) #获取字符串第一个到第5个字符
print(str10[4:]) #获取字符串从第5个到结束的字符
11
a
k
cd
abcde
efghijk
#例7:字符串的拼接
str11 = 'I love string!'
str12 = '需要合并的字符串'
print(str11)
print(str12)
str11 = str11 + '直接合并字符串'
print(str11)
str12 = str11 + str12
print(str12)
I love string!
需要合并的字符串
I love string!直接合并字符串
I love string!直接合并字符串需要合并的字符串
3.字符串的常用内置方法
- capitalize() 将字符串的第一个字符转换为大写。
#例8
str13 = 'abcef'
print(str13.capitalize())
Abcef
- lower() 转换字符串中所有大写字符为小写。
- upper() 转换字符串中的小写字母为大写。
- swapcase() 将字符串中大写转换为小写,小写转换为大写。
#例9
str14 = 'AbCdefG'
print(str14.upper())
print(str14.lower())
print(str14.swapcase())
ABCDEFG
abcdefg
aBcDEFg
- count(str, beg= 0,end=len(string)) 返回str在 string 里面出现的次数,如果beg或者end指定则返回指定范围内str出现的次数。
#例10
str15 = 'DAXIExiaoxie'
print(str15.count('xi'))
2
- endswith(suffix, beg=0, end=len(string)) 检查字符串是否以指定子字符串 suffix 结束,如果是,返回 True,否则返回 False。如果 beg 和 end 指定值,则在指定范围内检查。
- startswith(substr, beg=0,end=len(string)) 检查字符串是否以指定子字符串 substr 开头,如果是,返回 True,否则返回 False。如果 beg 和 end 指定值,则在指定范围内检查。
#例11
str16 = 'DAXIExiaoxie'
print(str16.endswith('ie'))
print(str16.endswith('xi'))
print(str16.startswith('Da'))
print(str16.startswith('DA'))
True
False
False
True
- find(str, beg=0, end=len(string)) 检测 str 是否包含在字符串中,如果指定范围 beg 和 end,则检查是否包含在指定范围内,如果包含,返回开始的索引值,否则返回 -1。
- rfind(str, beg=0,end=len(string)) 类似于 find() 函数,不过是从右边开始查找。
#例12
str17 = "DAXIExiaoxie"
print(str17.find('xi')) # 5
print(str17.find('ix')) # -1
print(str17.rfind('xi')) # 9
5
-1
9