Error in user YAML: (<unknown>): found a tab character that violate indentation while scanning a plain scalar at line 3 column 3
---
- oeasy Python 0088
- 这是 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`
---- 配套视频
- 上次了解了
- append
- 追加
- 还有什么 方法呢?🤔
list.
- append之后是?
- 后面是clear
help(list.clear)
- 清空列表中所有列表项
- 只有一个 参数是 self
- self是什么?
- self就是自己
- 谁自己?
- 谁调用clear
- 就是谁自己
谁调用的 clear?
nlist = [0, 1, 2]
nlist.clear()
nlist
- nlist 调用
- 所以 self 就是 nlist对象自己
- nlist被清空了
- nlist 是 啥?
- 对着 nlist 喊 救命(help)
help(nlist)
- nlist 是一个
- 列表类 的 实例对象
- 什么 是 列表类 呢??
- 先回忆 什么是 类?
- 类
- 是一种 抽象的 数据类型
- 比如说 汽车类(car class)
- 这辆吉普车 是
- 隶属于 汽车类(car class)的
- 实例对象 this_jeep
- this_jeep 可以调用
自己的成员方法- this_jeep.start_engine()
- this_jeep.accelerate(speed)
- this_jeep.brake()
- this_jeep.turn(direction)
- 列表类 就是 一种抽象类型
- 内建的 可变 序列
- builtin mutable sequence
- append 和 clear 都是 list类 的 成员方法
- 都有self 作为第一个参数
- append 和 clear
- 都是 list这个列表类的 成员方法
- member method
- 都是 list这个列表类的 成员方法
- 通过 实例对象 来调用
- append
- name_list.append("o4z")
- clear
- name_list.clear()
- .(点)的意思是
里面的
- append
- 列表 为啥 要清空 ?
- disney 发布一个 周边
- 引发 大量人 排队
- 形成列表
- 周边 卖没了
- 后面的人 排队 也买不着了
- 列表 只能 清空 了
people_list.clear()
- clear 是
- 可以清空列表
- 是 list列表类的 成员方法
- 可以 有什么
实际应用吗?
- 想做个
收银员的 程序
while True:
numbers = []
while True:
num = input("请输入商品价格(输入end停止输入):")
if num == "end":
break
try:
num = float(num)
numbers.append(num)
except ValueError:
print("输入不合法,请输入有效的浮点数或end。")
total = sum(numbers)
print(f"本次输入的数字总和为:{total}")
- 这里面 每次重新 累加
- 先将 空列表 赋给了 numbers
- 输入end进行求和
- 输入ctrl+c结束程序
- lst.clear()和 lst = [ ]
- 有区别吗?
- 单个列表 看不出 区别
- 两个列表 就有区别了
nlist1 = [0, 1, 2]
nlist2 = nlist1
nlist2.clear()
nlist1
nlist2- 首先定义 nlist1、nlist2
- 是 两个 列表对象
- 列表对象nlist2 调用clear方法
- nlist1、nlist2 都清空了
nlist1 = [0, 1, 2]
nlist2 = nlist1
nlist2 = []
nlist1
nlist2- 还是 这两个 列表对象
- 将 空列表[ ] 赋给 nlist2
- nlist1 不会受到影响
- 为什么会不一样呢?
nlist1 = [0, 1, 2]
nlist2 = nlist1
nlist2.clear()
print(nlist1, nlist2)- 将 nlist1 赋给 nlist2
- 两个列表对象 引用着 同一地址
- nlist2清空 就是
- nlist1 清空
nlist1 = [0, 1, 2]
nlist2 = nlist1
nlist2 = []
print(nlist1, nlist2)- 赋值之后
- 两个列表 指向 不同地址
- 可以看看 具体地址吗?
nlist1 = [0, 1, 2]
nlist2 = nlist1
id(nlist2), id(nlist2)
nlist2.clear()
id(nlist2), id(nlist2)- 这两个列表对象
- 地址始终没有变化
- 一直指向同一个位置
- 所以清空一个
- 另一个所指向的地址不变
- 也清空了
- 另一个所指向的地址不变
- 回到pythontutor
nlist1 = [0, 1, 2]
nlist2 = nlist1
nlist2 = []
print(nlist1, nlist2)- 将nlist1 赋给 nlist2
- 两个列表对象指向同一地址
- 将 空列表[] 赋给nlist2
- nlist2 地址变了
- nlist1 地址没变
- 还是原来的
nlist1 = [0, 1, 2]
id(nlist1)
nlist2 = nlist1
id(nlist2)
nlist2 = []
id(nlist1), id(nlist1)
- 通过id函数得到列表的地址
- 将空列表 赋给nlist2
- 让nlist2 指向 一个空列表的地址
- 一个新地址
- 和nlist1那个地址 就没关系了
- 让nlist2 指向 一个空列表的地址
| 单词 | 单词含义 | 描述 |
|---|---|---|
list |
列表 | 内建可变序列 |
append |
追加 | list的方法 用于在列表的末尾添加一个元素 |
clear |
清空 | list 的方法 清空列表 |
function |
函数 | 独立的代码块 可以直接调用 |
method |
方法 | 与对象相关联的函数 需要通过对象来调用 |
- 这次了解了 list列表的 清空方法
- clear
- clear
- 前面要有 对象名
- .(点)的意思是 里面的
- 可以把整个列表清空
- 就像清空回收站
clist = list("oeasy")
clist
clist.clear()
- 不想
全清空定点删除可以 吗?🤔
- 下次再说 👋
- 配套视频
- 本文来自 oeasy Python 系统教程。
- 想完整、扎实学 Python,
- 搜索 oeasy 即可。



















