find方法_指数为负数_index_实际效果 回忆
-
上次了解了eval函数
-
根据本地和全局的变量
-
将 source
-
衡量 (evaluate)出来
添加图片注释,不超过 140 字(可选)
-
要特别注意
-
类名 str、int、list 不能作为变量名
-
那样 会 覆盖掉 类
添加图片注释,不超过 140 字(可选)
-
字符串 中 索引值 可以 是 负数
-
列表中 索引值 可以是 负数吗?🤔
负数索引 char_list = list("oeasy") char_list[-1]
-
"o" 是 第0个 元素
-
第0个 再减1
-
等于 -1
添加图片注释,不超过 140 字(可选)
-
最后1个元素"y"
-
首尾相连的话
-
挨着 第0个
-
方向相反
-
所以 索引为 -1
继续遍历
-
再往前1个元素
-
索引为-2
添加图片注释,不超过 140 字(可选)
-
那负数索引
-
怎么理解?🤔
添加图片注释,不超过 140 字(可选)
负数索引 char_list = list("oeasy") char_list.index("y")
-
"y"的索引为 4
添加图片注释,不超过 140 字(可选)
-
长度 len(l)为 5
char_list.index("y") - len(char_list) char_list[char_list.index("y") - len(char_list)]
-
y的索引值 - 字符串的长度
-
4 - 5
-
得到 -1
添加图片注释,不超过 140 字(可选)
-
负数索引 可以 理解为
-
正索引 减去 长度
索引列表
-
可以根据索引号
-
得到相应的字符
0 | 1 | 2 | 3 | 4 |
---|---|---|---|---|
o | e | a | s | y |
-5 | -4 | -3 | -2 | -1 |
-
如果 index方法 查找的是
-
不存在的 列表项 呢?
不存在的 char_list = list("oeasy") char_list.index("k")
-
"k" 在 char_list 中并不存在
-
系统报错
-
值错误
添加图片注释,不超过 140 字(可选)
-
如果列表里
-
对应两个列表项 呢?
两个匹配 char_list = list("oeasyo2z") char_list.index("o")
-
char_list中有两个'o'
添加图片注释,不超过 140 字(可选)
-
如果 有两个列表项 和 参数匹配
-
index 只会找到 第一个列表项的 索引
-
如何找到 第二个列表项 呢?
范围匹配 help(list)
-
index方法有三个参数
-
value
-
start
-
stop
添加图片注释,不超过 140 字(可选)
-
默认匹配 first 第一个
-
可以控制 start
-
start 是 开始位置
-
想要 匹配第2个
参数
-
从第 0 个元素的位置开始找
-
找到第0项
添加图片注释,不超过 140 字(可选)
-
从第 1 个元素的位置开始找
-
也就是从 e 开始
-
前面的 o 就不算数了
-
找到第 5 项
-
start 是包含本身的
-
stop 如何理解呢?
stop
-
stop
-
结束位置
添加图片注释,不超过 140 字(可选)
-
start 和 stop 前闭后开
-
stop 的位置本身是不被包含的
-
就像 range 的构造函数一样
添加图片注释,不超过 140 字(可选)
-
stop 默认值是多少?🤣
最大结束位置
-
stop 默认值 非常大的 一个数
添加图片注释,不超过 140 字(可选)
-
具体多大呢?
转化 bin(9223372036854775807) len(bin(9223372036854775807)) len(bin(9223372036854775807)) - 2 + 1
-
用bin把这数字转化为二进制形态
添加图片注释,不超过 140 字(可选)
-
总共63个1
-
说明 最大正数 是 63个1
-
除了正数之外 还有负数
-
说明这个 数据的存储 需要
-
64-bits
-
8-bytes
-
这是 8-bytes 有符号正数的最大值
-
能建立比这个范围还大的列表吗?
崩溃了 list(range(9223372036854775807)) list(range(9223372036854775808))
-
好像崩溃了啊
-
😁哈哈哈哈
-
OverflowError
添加图片注释,不超过 140 字(可选)
-
如何理解OverFlow呢?
overflow
-
overflow
-
over超过
-
flow 流出
-
溢出
添加图片注释,不超过 140 字(可选)
-
索引函数index 的 结束位置参数
-
超过了 8-bytes 所能容纳数字的极限
-
发生了溢出
-
索引 有什么具体应用 吗?
遍历小时数
-
遍历所有的小时数
添加图片注释,不超过 140 字(可选)
-
生成一个列表
-
0x3358的意思是(3358)16进制
添加图片注释,不超过 140 字(可选)
-
运行结果
添加图片注释,不超过 140 字(可选)
朝九晚五
添加图片注释,不超过 140 字(可选)
-
我想
-
把9点变成绿色
-
把17点变成红色
变色 l_hours = [] for n in range(0x3358, 0x3358+24): l_hours.append(chr(n)) l_hours[9] = "\33[42m" + chr(0x3358 + 9) + "\33[0m" l_hours[17] = "\33[41m" + chr(0x3358 + 17) + "\33[0m" for hour in l_hours: print(hour, end="\t")
-
运行结果
添加图片注释,不超过 140 字(可选)
-
精准替换完成
-
除了列表list之外
-
字符串str也可以有索引吗?
字符串索引
添加图片注释,不超过 140 字(可选)
-
确实有
添加图片注释,不超过 140 字(可选)
-
这个方法在找子字符串的索引位置
-
和str.find很像啊
str.find
添加图片注释,不超过 140 字(可选)
-
好像是一模一样?
查看帮助
添加图片注释,不超过 140 字(可选)
-
功能一模一样
添加图片注释,不超过 140 字(可选)
-
出错处理有差别
-
index 找不到子串时抛出 ValueError 错误
-
find 失败后返回 -1
-
有了index
-
为啥还要有 find呢?
各有各的好处
-
各有特色
-
find 看起来比较温和
-
index 看起来更加刚猛一点
-
弥乐佛 笑迎八方客
-
负责公关
-
香火旺
-
韦陀 铁面无私
-
负责财务审计
-
锱珠必较
-
严格把关
添加图片注释,不超过 140 字(可选)
-
共处天王殿
-
性格互补
-
背靠背
总结
-
这次了解了 列表的下标索引
-
可以是 正数
-
也可以是 负数
0 | 1 | 2 | 3 | 4 |
---|---|---|---|---|
o | e | a | s | y |
-5 | -4 | -3 | -2 | -1 |
-
有2个函数 都可以
-
根据 列表项
-
找到 索引位置
函数 | 输入 | 输出 | 区别 |
---|---|---|---|
index | 列表项 | 索引值 | 找不到 就报ValueError |
find | 列表项 | 索引值 | 找不到 不报错 返回-1 |
-
这列表 还有什么 好玩的 吗?🤔
-
下次再说 👋
-
gitee->oeasy教您玩转python教程: 面向零基础初学者的简明易懂的 Python3 入门课程,对没有编程经验的同学也非常友好。在vim下从浅入深,逐步学习。从基础入门学习到爬虫。