Error in user YAML: (<unknown>): found a tab character that violate indentation while scanning a plain scalar at line 3 column 3
---
- oeasy Python 0093
- 这是 oeasy 系统化 Python 教程,从基础一步步讲,扎实、完整、不跳步。愿意花时间学,就能真正学会。
- 本教程同步发布在:
- 个人网站: `https://oeasy.org`
- 蓝桥云课: `https://www.lanqiao.cn/courses/3584`
- GitHub: `https://github.com/overmind1980/oeasy-python-tutorial`
- Gitee: `https://gitee.com/overmind1980/oeasypython`
---
- 配套视频
- 上次了解了eval函数
- 根据本地和全局的变量
- 将 source
- 衡量 (evaluate)出来

- 要特别注意
- 类名 str、int、list 不能作为变量名
- 那样 会 覆盖掉 类

char_list = list("oeasy")
char_list[-1]



char_list = list("oeasy")
char_list.index("y")

char_list.index("y") - len(char_list)
char_list[char_list.index("y") - len(char_list)]

| 0 |
1 |
2 |
3 |
4 |
| o |
e |
a |
s |
y |
| -5 |
-4 |
-3 |
-2 |
-1 |
char_list = list("oeasy")
char_list.index("k")

char_list = list("oeasyo2z")
char_list.index("o")

- 如果 有两个列表项 和 参数匹配
- 如何找到 第二个列表项 呢?


- 从第 1 个元素的位置开始找
- 也就是从 e 开始
- 前面的 o 就不算数了
- 找到第 5 项
- start 是包含本身的
- stop 如何理解呢?

- start 和 stop 前闭后开
- stop 的位置本身是不被包含的
- 就像 range 的构造函数一样


bin(9223372036854775807)
len(bin(9223372036854775807))
len(bin(9223372036854775807)) - 2 + 1

- 总共63个1
- 说明 最大正数 是 63个1
- 除了正数之外 还有负数
- 说明这个 数据的存储 需要
- 64-bits
- 8-bytes
- 这是 8-bytes 有符号正数的最大值
list(range(9223372036854775807))
list(range(9223372036854775808))


- 索引函数index 的 结束位置参数
- 超过了 8-bytes 所能容纳数字的极限
- 发生了溢出
- 索引 有什么具体应用 吗?




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")






- 出错处理有差别
- index 找不到子串时抛出 ValueError 错误
- find 失败后返回 -1
- 有了index
- 各有特色
- find 看起来比较温和
- index 看起来更加刚猛一点
- 弥乐佛 笑迎八方客
- 韦陀 铁面无私

| 0 |
1 |
2 |
3 |
4 |
| o |
e |
a |
s |
y |
| -5 |
-4 |
-3 |
-2 |
-1 |
| 函数 |
输入 |
输出 |
区别 |
| index |
列表项 |
索引值 |
找不到 就报ValueError |
| find |
列表项 |
索引值 |
找不到 不报错 返回-1 |
- 这列表 还有什么
好玩的 吗?🤔
- 下次再说 👋
- 配套视频
- 本文来自 oeasy Python 系统教程。
- 想完整、扎实学 Python,
- 搜索 oeasy 即可。