@@ -149,40 +149,155 @@ Python 的变量命名规则主要包括两条:
149149
150150Python 变量命名习惯一般遵守蛇形命名法(snake case):
151151
152- - 一般变量命名,book_id、 book_store_count;
153- - 类名首字符为大写,如 Python 内置模块 collections.abc 中的 Iterable 类、我们自定义的 Book 类等;
154- - 类方法名:get_store_count();
155- - 其他特殊变量,会全部大写,M_PI 、 MAX_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+ 
196+
197+ 为了帮助新手更容易理解代码整个执行过程,专栏会配备相应的演示动画:
198+
199+ 
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