update
many, many chore
This commit is contained in:
@@ -1,12 +1,13 @@
|
||||
# 阶段三:数据抽象
|
||||
|
||||
数据抽象(Data Abstraction)
|
||||
数据抽象 (Data Abstraction)
|
||||
|
||||
[可参考教程](https://zhuanlan.zhihu.com/p/343133774)
|
||||
::: warning 🐱 [可参考教程](https://zhuanlan.zhihu.com/p/343133774)
|
||||
|
||||
各位需要认真了解以下内容,他们是构建任何大厦的基石
|
||||
:::
|
||||
|
||||
# Data Abstraction
|
||||
## Data Abstraction
|
||||
|
||||
数据抽象是一个伟大的概念,它允许程序员将代码以对象的形式进行看待,并且从更高的层面去审视问题。
|
||||
|
||||
@@ -14,14 +15,14 @@
|
||||
|
||||
举个例子:你在开车时,如果要控制发动机的活塞怎么动,对你来说是否有些太过于困难了。因此将其抽象成了离合器,油门,刹车这些较为简单的操作。
|
||||
|
||||
# 组成
|
||||
## 组成
|
||||
|
||||
一个抽象的数据类型(ADT)由两个主要部分组成
|
||||
|
||||
- Constructors:架构抽象数据类型的主要函数
|
||||
- Selectors:操作数据类型的各式方法
|
||||
|
||||
# 列表与元组
|
||||
## 列表与元组
|
||||
|
||||
列表是可以存储多个元素的 Python 数据结构。每个元素可以是任何类型,甚至可以是另一个列表!
|
||||
|
||||
@@ -37,12 +38,12 @@
|
||||
|
||||
```python
|
||||
tup = (1, 2, 3, 4)
|
||||
new_tup = tup + (5, ) # 创建新的元组new_tup,并依次填充原元组的值
|
||||
new_tup = tup + (5, ) # 创建新的元组 new_tup,并依次填充原元组的值
|
||||
new _tup
|
||||
(1, 2, 3, 4, 5)
|
||||
|
||||
l = [1, 2, 3, 4]
|
||||
l.append(5) # 添加元素5到原列表的末尾
|
||||
l.append(5) # 添加元素 5 到原列表的末尾
|
||||
l
|
||||
[1, 2, 3, 4, 5]
|
||||
```
|
||||
@@ -69,13 +70,14 @@ l
|
||||
3
|
||||
```
|
||||
|
||||
思考题:
|
||||
::: warning 🤔 思考题:
|
||||
|
||||
列表和元组在性能上有什么差异呢?
|
||||
|
||||
他们对应的使用场景有哪些呢?
|
||||
:::
|
||||
|
||||
# 字典与集合
|
||||
## ;ltyi 字典与集合
|
||||
|
||||
字典是一系列由键(key)和值(value)配对组成的元素的集合,在 Python3.7+,字典被确定为有序
|
||||
|
||||
@@ -112,21 +114,22 @@ d
|
||||
{'name': 'jason', 'age': 20, 'gender': 'male'}
|
||||
|
||||
s = {1, 2, 3}
|
||||
s.add(4) # 增加元素4到集合
|
||||
s.add(4) # 增加元素 4 到集合
|
||||
s
|
||||
{1, 2, 3, 4}
|
||||
s.remove(4) # 从集合中删除元素4
|
||||
s.remove(4) # 从集合中删除元素 4
|
||||
s
|
||||
{1, 2, 3}
|
||||
```
|
||||
|
||||
思考题:
|
||||
::: warning 🤔 思考题:
|
||||
|
||||
字典和集合分别是什么原理呢?
|
||||
|
||||
字典可以是一个列表吗?为什么?
|
||||
:::
|
||||
|
||||
# 可变性
|
||||
## 可变性
|
||||
|
||||
我们说如果一个对象可以由代码进行操作而改变那么我们称其具有可变性。
|
||||
|
||||
@@ -176,13 +179,14 @@ False
|
||||
True
|
||||
```
|
||||
|
||||
思考题,你能否从指针的角度去理解可变性呢?
|
||||
::: warning 🤔 思考题,你能否从指针的角度去理解可变性呢?
|
||||
:::
|
||||
|
||||
# 任务
|
||||
## 任务
|
||||
|
||||
P7:9*9 乘法表
|
||||
P7:9*9 乘法表
|
||||
|
||||
可能现在对你来说,构建像下图这样的 99 乘法表已经是非常容易的一件事了,可是如果我要求你使用 python 的列表推导式(list comprehension),在两行以内完成呢?
|
||||
可能现在对你来说,构建像下图这样的 99 乘法表已经是非常容易的一件事了,可是如果我要求你使用 python 的列表推导式 (list comprehension),在两行以内完成呢?
|
||||
|
||||

|
||||
|
||||
@@ -235,40 +239,40 @@ make_city(name, lat, lon)
|
||||
|
||||
```python
|
||||
def make_city(name, lat, lon):
|
||||
<em>"""</em>
|
||||
<em> >>> city = make_city('Berkeley', 0, 1)</em>
|
||||
<em> >>> get_name(city)</em>
|
||||
<em> 'Berkeley'</em>
|
||||
<em> >>> get_lat(city)</em>
|
||||
<em> 0</em>
|
||||
<em> >>> get_lon(city)</em>
|
||||
<em> 1</em>
|
||||
<em> """</em>
|
||||
<em> </em>return [name, lat, lon]
|
||||
"""
|
||||
>>> city = make_city('Berkeley', 0, 1
|
||||
>>> get_name(city)
|
||||
'Berkeley
|
||||
>>> get_lat(city)
|
||||
0
|
||||
>>> get_lon(city)
|
||||
1
|
||||
"""
|
||||
return [name, lat, lon]
|
||||
|
||||
def get_name(city):
|
||||
<em>"""</em>
|
||||
<em> >>> city = make_city('Berkeley', 0, 1)</em>
|
||||
<em> >>> get_name(city)</em>
|
||||
<em> 'Berkeley'</em>
|
||||
<em> """</em>
|
||||
<em> </em>return city[0]
|
||||
"""
|
||||
>>> city = make_city('Berkeley', 0, 1)
|
||||
>>> get_name(city)
|
||||
'Berkeley'
|
||||
"""
|
||||
return city[0]
|
||||
|
||||
def get_lat(city):
|
||||
<em>"""</em>
|
||||
<em> >>> city = make_city('Berkeley', 0, 1)</em>
|
||||
<em> >>> get_lat(city)</em>
|
||||
<em> 0</em>
|
||||
<em> """</em>
|
||||
<em> </em>return city[1]
|
||||
"""
|
||||
>>> city = make_city('Berkeley', 0, 1)
|
||||
>>> get_lat(city)
|
||||
0
|
||||
"""
|
||||
return city[1]
|
||||
|
||||
def get_lon(city):
|
||||
<em>"""</em>
|
||||
<em> >>> city = make_city('Berkeley', 0, 1)</em>
|
||||
<em> >>> get_lon(city)</em>
|
||||
<em> 1</em>
|
||||
<em> """</em>
|
||||
<em> </em>return city[2]
|
||||
"""
|
||||
>>> city = make_city('Berkeley', 0, 1)
|
||||
>>> get_lon(city)
|
||||
1
|
||||
"""
|
||||
return city[2]
|
||||
```
|
||||
|
||||
首先你试试求出两个地方的距离。
|
||||
|
||||
Reference in New Issue
Block a user