Skip to content

Commit 06870b4

Browse files
committed
update
1 parent 99a3023 commit 06870b4

File tree

3 files changed

+119
-4
lines changed

3 files changed

+119
-4
lines changed
142 KB
Loading
74.4 KB
Loading

bornforthis/column/python60/01.md

Lines changed: 119 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -149,40 +149,155 @@ Python 的变量命名规则主要包括两条:
149149

150150
Python 变量命名习惯一般遵守蛇形命名法(snake case):
151151

152-
- 一般变量命名,book_idbook_store_count;
153-
- 类名首字符为大写,如 Python 内置模块 collections.abc 中的 Iterable 类、我们自定义的 Book 类等;
154-
- 类方法名:get_store_count();
155-
- 其他特殊变量,会全部大写,M_PIMAX_VEHICLE_SPEED
152+
- 一般变量命名,`book_id``book_store_count`
153+
- 类名首字符为大写,如 Python 内置模块 `collections.abc` 中的 Iterable 类、我们自定义的 Book 类等;
154+
- 类方法名:`get_store_count()`
155+
- 其他特殊变量,会全部大写,`M_PI``MAX_VEHICLE_SPEED`
156156

157157
这与 Java 命名方法不同,Java 最典型的命名方法——驼峰命名法(camel case)。
158158

159+
### 缩进原则
159160

161+
Python 最具特色的地方就是用缩进代替 Java、C++ 中的 `{}`,缩进的层级结构表示代码的逻辑层次。
160162

163+
比如,自定义一个 Book 类,重写 __add__ 方法计算两类书的库存量和。
161164

165+
Python 的缩进方法,一般为 4 个字符。
162166

167+
- 代码行 `class Book(object)` 与代码行 `# 定义类的参数` 的缩进,此处为 4 个字符;
168+
- 代码行 `def __add__(self, book):``return` 所在行缩进也是 4 个字符。
163169

170+
通过这种层级结构,展现代码的逻辑层次。
164171

172+
下面代码,创建一个 Book 类:
165173

174+
```python
175+
class Book(object):
176+
# 定义类的参数
177+
def __init__(self,book_id, book_name, book_store_count):
178+
self.book_id = book_id
179+
self.book_name = book_name
180+
self.book_store_count = book_store_count
181+
# 重写加法操作
182+
def __add__(self,book):
183+
return self.book_store_count + book.book_store_count
184+
185+
# 创建两个 Book 类的实例:
186+
python_intro_book = Book(1, 'python入门书', 100)
187+
ml_intro_book = Book(2, '机器学习入门书', 200)
188+
# 求两本书的总销量
189+
sales_cnt = python_intro_book + ml_intro_book
190+
print(sales_cnt) # 300
191+
```
192+
193+
如下是代码执行结果的演示图,打印总销量 300。结合图形,辅助大家快速理解代码。
194+
195+
![image-20200218101020064](./01.assets/d20cbcc0-51fc-11ea-b315-dd4a0f63c225.png)
196+
197+
为了帮助新手更容易理解代码整个执行过程,专栏会配备相应的演示动画:
198+
199+
![img](./01.assets/77e2e910-877e-11ea-a9ff-29e53f17413b.gif)
200+
201+
缩进格式、行间空行数、变量和等号空格等 Python 编码规范参考PEP8
202+
203+
autopep8 包遵循 PEP8 的所有规范,安装此包,做好相关配置,便可自动实现 PEP8 制定的编码规范。
204+
205+
### 特殊关键字
206+
207+
Python 有 35 个关键字:
208+
209+
```python
210+
False await else import pass
211+
None break except in raise
212+
True class finally is return
213+
and continue for lambda try
214+
as def from nonlocal while
215+
assert del global not with
216+
async elif if or yield
217+
```
218+
219+
自定义变量名不能与它们重复。
220+
221+
常用且不同于其他常用语言 C++ 和 Java 的关键字,如:
166222

223+
- `True``False` 用于表示值的真假,在 Java 中是 `true``false`
224+
- 逻辑反操作 Python 使用 `not`,Java 是 `!`
225+
- `None` 表示空值,Java 使用 `null`
226+
- Python 两个条件同时满足使用 `and`,Java 是 `&&`
227+
- 两者满足其一,Python 使用 `or`,Java 使用 `||`
228+
- Python 使用 `elif`, Java 是 `else if`
167229

230+
其他比较特殊的关键字,如:
168231

232+
- `del` 用于删除可迭代对象中某个元素;
233+
- `def` 用于定义函数;
234+
-`yield` 用于定义生成器(generator)函数;
235+
- `global``nonlocal` 一种应用是 Python 函数式编程的闭包场景;
236+
- `pass` 一种应用是定义接口,也是 Python 语言特有的一个关键字。
169237

238+
这些关键字的用法,会在后续文章,更为详细的介绍。在此,先构建一个整体上的认识即可。
170239

240+
### 特殊运算符
171241

242+
Python 的运算符包括:
172243

244+
```python
245+
+ - * ** / // % @
246+
<< >> & | ^ ~ :=
247+
< > <= >= == !=
248+
```
173249

250+
大部分运算符应该被熟知,重点介绍 3 个比较特殊的:`//``**``:=`
174251

252+
`//` 用于两个数值相除且向下取整,与 Python 的 math 模块中 floor 功能相似:
175253

254+
```python
255+
In [1]: 5//2
256+
Out[1]: 2
257+
In [2]: 5//4.5
258+
Out[2]: 1.0
259+
```
176260

261+
`**` 用于幂运算:
177262

263+
```python
264+
In [1]: 2 ** 3
265+
Out[1]: 8
266+
```
178267

268+
`:=` 是在 2019 年,Python 3.8 版本里,刚刚才被支持的运算符,被形象地称为“海象运算符”。
179269

270+
```python
271+
n = len(a)
272+
if n > 10:
273+
print(f"{n}大于10")
274+
```
180275

276+
如果使用“海象运算符”,写法上更为精简:
277+
278+
```python
279+
if (n := len(a)) > 10:
280+
print(f"{n}大于10")
281+
```
282+
283+
Python 比较运算符还支持链式比较,应用起来更加方便,比如:
284+
285+
```python
286+
i = 3
287+
print(1 < i < 3) # False
288+
print(1 < i <= 3) # True
289+
```
181290

291+
另外,运算符 `@` 用于装饰器功能,本专栏会深入解释它的本质,同时配备的几个相关案例,一定会帮助你学会使用装饰器。
182292

293+
## 小结
183294

295+
Python 学习第一天,首先认识 Python 两大特征:
184296

297+
- 动态语言:动态指代码运行时才被编译器一行一行翻译执行;
298+
- 强类型:强类型指被绑定一个类型后便不能修改,不能与其他类型混用。
185299

300+
四大基本语法,总结了 Python 的命名规则、缩进原则、特殊关键字、特殊运算符,为后面的学习打下基础。
186301

187302
欢迎关注我公众号:AI悦创,有更多更好玩的等你发现!
188303

0 commit comments

Comments
 (0)