Skip to content

Commit 98e5619

Browse files
author
comyn
committed
Merge branch 'master' of github.com:magedu/python2016
2 parents d0ee813 + 5ba148a commit 98e5619

5 files changed

Lines changed: 941 additions & 0 deletions

File tree

000_环境准备.adoc

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
= 环境准备
2+
comyn <me@xueming.li>
3+
v1.0
4+
:source-highlighter: pygments
5+
:revealjs_history: false
6+
:revealjs_center: false
7+
:revealjs_embedded: true
8+
:revealjsdir: ../reveal.js
9+
:imagesdir: assets/images/0
10+
:homepage: http://www.magedu.com
11+
12+
== 操作系统
13+
14+
[%step]
15+
* linux
16+
* osx
17+
18+
== 操作系统
19+
20+
[%step]
21+
* 推荐使用osx
22+
* 教学使用osx
23+
* 所有代码可以在linux上运行
24+
* 未经特殊说明的代码也可以在windows上运行
25+
26+
== IDE & editor
27+
28+
[%step]
29+
* PyCharm
30+
* Atom
31+
* vim
32+
* emacs
33+
34+
== IDE & editor
35+
36+
[%step]
37+
* 推荐使用PyCharm
38+
* 教学使用vim
39+
40+
== Python版本
41+
42+
[%step]
43+
* 教学使用3.4.2
44+
* 异步部分会介绍3.5的`async`和`await`关键字
45+
46+
== 安装Python
47+
48+
* 使用pyenv来管理Python环境
49+
50+
=== 安装pyenv
51+
52+
[source,bash]
53+
----
54+
curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
55+
----
56+
57+
=== pyenv基本使用
58+
59+
* `pyenv install` 安装Python
60+
[source,bash]
61+
pyenv install 3.4.2
62+
63+
* `pyenv virtualenv` 创建虚拟环境
64+
[source,bash]
65+
pyenv virtualenv 3.4.2 ch_0
66+
67+
* `pyenv local` 设置使用Python版本
68+
[source,bash]
69+
pyenv local ch_0

001_基础语法.adoc

Lines changed: 234 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,234 @@
1+
= 基础语法
2+
comyn <me@xueming.li>
3+
v1.0
4+
:source-highlighter: pygments
5+
:revealjs_history: false
6+
:revealjs_center: false
7+
:revealjs_embedded: true
8+
:revealjsdir: ../reveal.js
9+
:imagesdir: assets/images/1
10+
:homepage: http://www.magedu.com
11+
12+
== hello world
13+
[source,python]
14+
print('hello world')
15+
16+
== 常量&变量
17+
18+
=== 字面常量
19+
20+
[%step]
21+
* 单独出现的数字,字符串等
22+
* 字面常量是解释器里的一块内存
23+
* 单独出现的字面常量无意义
24+
25+
=== 变量
26+
27+
[%step]
28+
* 解释器中一段内存的名称
29+
* Python中,变量都是引用
30+
31+
=== 数据类型
32+
33+
[%step]
34+
* Python是强类型动态语言
35+
* 数据类型是对用来约束数据的。
36+
* 原始类型和复合类型
37+
38+
== 运算符&表达式
39+
40+
=== 算术运算符
41+
_a = 10, b = 20_
42+
[cols="2,2,5,4", options="header"]
43+
|===
44+
|符号|名称|描述|实例
45+
|+|加|两个对象相加|a + b = 30
46+
|-|减|两个对象相减|a - b = -10
47+
|*|乘|两个对象相乘|a * b = 200
48+
|/|除|两个对象相除|a / b = 0.5
49+
|===
50+
51+
=== 算术运算符
52+
_a = 10, b = 20_
53+
[cols="2,2,5,4", options="header"]
54+
|===
55+
|符号|名称|描述|实例
56+
|%|取模|返回除法的余数| a % b = 10
57+
|**|幂|返回x的y次幂|a ** b = 100000000000000000000
58+
|//|取整除|返回除法运算的整数部分|a // b = 0
59+
|===
60+
61+
=== 位运算符
62+
_a=60(00111100) b=13(00001101)_
63+
[cols="2,5,4"]
64+
|===
65+
|符号|描述|实例
66+
|&|按位与|a & b = 12
67+
|\||按位或| a\|b = 61
68+
|^|按位异或|a^b = 49
69+
|~|按位取反| ~a = -61
70+
|===
71+
72+
=== 位运算符
73+
_a=60(00111100) b=13(00001101)_
74+
[cols="2,5,4"]
75+
|===
76+
|符号|描述|实例
77+
|<<|左移| a << 2 = 240
78+
|>>|右移| a >> 2 = 15
79+
|===
80+
81+
=== 比较运算符
82+
_a = 10, b = 20_
83+
[cols="2,5,4", options="header"]
84+
|===
85+
|符号|描述|实例
86+
|==|等于| a == b = False
87+
|!=|不等于| a != b = True
88+
|>|大于| a > b = False
89+
|<|小于|a < b = True
90+
|===
91+
92+
=== 比较运算符
93+
_a = 10, b = 20_
94+
[cols="2,5,4", options="header"]
95+
|===
96+
|符号|描述|实例
97+
|>=|大于等于| a >= b = False
98+
|\<=|小于等于|a \<= b = True
99+
|===
100+
101+
=== 逻辑运算符
102+
_a = True, b = False_
103+
[cols="2,5,4", options="header"]
104+
|===
105+
|符号|描述|实例
106+
|and|与| a and b = False
107+
|or|或|a or b = True
108+
|not|非| not a = False
109+
|===
110+
111+
=== 其他运算符
112+
[cols="2,3,6", options="header"]
113+
|===
114+
|符号|类别|描述
115+
|=|赋值运算符|a = b, 把b的值赋给a
116+
|in|成员运算符| a in b, a是否b的成员
117+
|not in| 成员运算符| a not in b, a是否不是b的成员
118+
|is|身份运算符| a is None, a是否None
119+
|is not|身份运算符| a is not None, a是否不是None
120+
|===
121+
122+
=== 表达式
123+
* 常量、变量和赋值运算符之外的运算符的组合
124+
* 表达式可以求值
125+
126+
=== 表达式与优先级
127+
[%step]
128+
* 一元高于二元
129+
* 数值高于逻辑
130+
* 算术运算高于位运算
131+
* 乘除高于加减
132+
* 拿不准时加括号
133+
134+
== 程序结构
135+
对于大多数语言来说,有且仅有三种结构:
136+
137+
* 顺序结构
138+
* 分支结构
139+
* 循环结构
140+
141+
=== 顺序结构
142+
* 顺序结构是绝大多数编程语言的默认结构
143+
* 指令按照书写顺序依次执行
144+
[source,python]
145+
----
146+
a = 10
147+
a += 2
148+
a << 2
149+
----
150+
a = 48
151+
152+
=== 分支结构
153+
154+
=== `if` 语句
155+
当条件满足时,进入另外一个分支,执行一个块,执行完成重新回到主分支
156+
157+
[source,python]
158+
----
159+
if condition: # <1>
160+
block # <2>
161+
----
162+
<1> Python 以 `:` 开始一个块
163+
<2> Python 使用缩进标示块
164+
165+
=== `else` 子句
166+
在 `if` 语句的基础上,当条件不满足时,执行一个块,执行完成重新回到主分支
167+
[source,python]
168+
----
169+
if condition:
170+
block
171+
else:
172+
block
173+
----
174+
175+
=== `elif` 子句
176+
`elif` 是 `else` 和 `if` 的合体, 在 `if` 判断失效的情况下,做进一步判断
177+
[source,python]
178+
----
179+
if condition:
180+
block
181+
elif:
182+
block
183+
----
184+
185+
=== 关于 `switch`
186+
Python中并没有 `switch` 结构, 因为 `switch`结构完全可以由 `if elif else`语句来实现
187+
188+
=== 循环结构
189+
Python中有两种循环结构:
190+
191+
* `while` 语句
192+
* `for` 语句
193+
194+
=== `while` 语句
195+
循环执行,直到满足条件,循环体内修改条件
196+
[source,python]
197+
----
198+
while condition:
199+
block
200+
----
201+
202+
=== `for` 语句
203+
遍历某个可迭代对象的所有元素,循环体不应该修改迭代器
204+
[source,python]
205+
----
206+
for item in iterator:
207+
block
208+
----
209+
210+
=== `range` 函数
211+
`range` 函数产生一个生成器,通常用于控制循环次数
212+
213+
* `range(x)` [0, x)
214+
* `range(m, n)` [m, n)
215+
* `range(m, n, s)` [m, n), 步长为 s
216+
217+
=== `break` 子句
218+
* 只能出现在循环结构中
219+
* 用于跳出当前循环结构
220+
221+
=== `continue` 子句
222+
* 只能出现在循环结构中
223+
* 用于跳过此次迭代的剩余操作
224+
225+
=== `else` 子句
226+
循环结构的 `else` 子句是Python特有的,用于表示一个循环是 *未经`break`跳出* 的
227+
228+
[source,python]
229+
----
230+
for item in iterator:
231+
block
232+
else:
233+
block
234+
----

0 commit comments

Comments
 (0)