本章大纲
字符串定义
拼接
sequence操作
字符串定义
字符串定义:只要成对引号引起来的都叫字符串,引号:单引号,双引号,三引号
变量类型是有对象决定的,右侧对象是什么类型,左侧的变量就是什么类型,比如:a = '100abcd',查看a变量类型:print(type(a),a)
在字符串元素里面没有引号,那么单双引号定义都是一样的
转义符 \ -- \n 换行符,比如a = '100\nab\ncd',查看a变量类型:print(type(a),a)
字符串引号用法:内双外单,内单外双。比如:a = 'abcd"ef"',b = "a1b2c3'd4e5'"
三引号:对象赋值给变量就是字符串,没有赋值给变量就是注释
字符串使用场景
字符串对象
路径:'e:/test.txt'
Url:web_url = 'https://www.baidu.com'
单双引号混合用法:web ui自动化识别元素
# 倒入webdriver模块
from selenium import webdriver
# 浏览器驱动
driver = webdriver.Chrome()
# 定位元素-单双引号混合
driver.find_element_by_xpath('//select[@id="cc_start_time]')
# 正则表达式提取数据-单双引号混合
pages = re.findall('<span class="td">共(.*?)页),到第</span>')
拼接
# 字符串-拼接(同类型字符串才可拼接)
print('name is '+ 'tom') # 两步:先拼接再打印
print('hello\n' * 3) # 打印3遍hello并换行
sequence(序列)操作
字符串的特性 被称为sequence(序列)
一个序列,若干个元素组成(每个元素下面都有相应的下标)
Sequence相同操作
元素 | H | i | , | J | a | y |
---|---|---|---|---|---|---|
正下标 | 0 | 1 | 2 | 3 | 4 | 5 |
负下标 | -6 | -5 | -4 | -3 | -2 | -1 |
# 字符串获取元素--下标获取
str1 = 'abcdefg'
print('长度:------->', len(str1)) # 查看字符串长度
print(str1[0]) # 正下标从 0 开始
print(str1[6]) # 字符串长度-1等于最大下标
print(str1[7]) # 下标越界,报错:IndexError: string index out of range,下标[7]不存在
print(str1[-2]) # 负下标从 -1 开始
# 切片
print(str1[1:4]) # 取下标 1 到 4 的元素,规则:左含右不含
print(str1[-1:-4]) # 取下标 -1 到 -4 的元素
# 获取元素下标
# 获取元素bcd,共两刀
# 第一刀:你需要获取字符串的第一个元素的下标
print(str1.index('b')) # 查看元素下标
# 第二刀:第一刀下标+你需要获取的字符串长度
print(str1[1:1+3]) # 切片出来的数据还是字符串,切片不改变原来的数据
# 获取前半段,规则:写前取后,写后取前,左含右不含
print(str1[:3]) # 取下标 0 到 3 的元素,规则:写后取前,左含右不含
print(str1[:-4])
# 获取后半段,规则:写前取后,写后取前
print(str1[3:]) # 取下标 3 之后的所有元素,规则:写前取后,左含右不含
print(str1[-4:])
"""
总结:
1-切片使用下标操作
2-切片不影响原数据类型
3-获取数据类型与原数据类型一致
4-左含右不含
5-获取字符串元素操作---非常常见
方案:
切片--又一边元素是固定格式
'xxx'.split()--需要有规律
强大--正则表达式--re模式
"""
# 扩展
# str1[第一刀下标:第二道下标:步长] 步长默认是1 正向连接
print(str1[0:4:1])
# str1[第一刀下标:第二道下标:步长] 步长 = 2 隔一个取值:隔一个取一个
print(str1[0:4:2])
# str1[第一刀下标:第二道下标:步长] 步长 = 3 隔一个取值:隔2个取一个
print(str1[0:4:3])
# str1[第一刀下标:第二道下标:步长] 步长 = 4 隔一个取值:隔3个取一个
print(str1[0:5:4])
# 获取全部元素
print(str1[::])
print(str1[0::])
print(str1[::1])
# 倒序输出
print(str1[::-1])
print(str1[-1::-1])
print(str1[-2:-4:-1])
示例:
比如,日志文件:
# 示例一:负下标获取
11:12:11> 001 enter chatroom, level 2
11:12:16> 003 enter chatroom, level 25
这是一个日志文件
记录游戏中某个人物进入聊天室,并且他的等级是多少
每行记录一个进入的人
前面是时间戳,是固定长度的
我们要把所有进入聊天室的用户id取出来
先要从每行日志字符串中吧用户id抠出来
# 正下标获取
str2 = '11:12:11> 001 enter chatroom, level 2'
print(str2.index('001')) # 001,第一个0的下标是10
print(str2[10:13])
# 示例二:负下标获取
11:12:11> level 2, 005 enter chatroom
11:12:16> level 25, 007 enter chatroom
我们要把所有进入聊天室的用户id取出来
先要从每行日志字符串中吧用户id抠出来
# 负下标获取
str3 = '11:12:11> level 2, 005 enter chatroom'
print(str3[-18:-15])
网友评论