python从零到壹
1. 基础要求
起点
前3差数学;后3差经验;天赋决定天花板;任何起点都可以开始python
江湖图谱
丐帮玩蛇,天下一绝; 学习最重要的是兴趣
江湖待遇
2. 程序=数据+算法
2.1 数据
数据=定量数据+定性数据
定量数据:自然数,整数,有理数,无理数
定性数据: 字符串
- python数据类型: int、bool、float、long、decimal、complex、空
- 变量,变量类型,赋值
1
2
3
4
5
6
7
8
9
|
a = 1
b = -3
c = 1/3
d = 1e4
e = "good"
f = 'shame' # "和'也是字符串
h = '他说,"你知道她是谁吗?"'
g = True
h = None
|
1
2
|
PI = 3.14
COIN_RATE = 100 # 游戏币兑人民币汇率
|
1
2
3
4
5
|
a = [1, 3, 5, 7, 9] # 奇数
b = [2, 4, 6, 8] # 偶数
c = [2, 3, 5, 7, 11, 13] # ?
d = [1,1,1,1,1,1,1,0,1,1] # ?
f = [1,"a", 0.3]
|
1
2
3
|
a =(1,2) # 二维空间
b =("40°1′49″","116°24′39″") # 经纬度
c =(1,2,1) # 三维空间
|
一般是固定的数据组合
1
|
a=set(["andy","tony","melody"]) # 签到表
|
1
2
3
4
5
|
a = [1, 3, 5, 7, 9]
a[0]
a[2]
b = (1,2)
b[0]
|
1
2
3
4
5
6
7
|
a = [1, 3, 5, 7, 9]
a.append(1)
a.pop(3)
print(a)
b = set([1,2,3,45])
b.add(5)
print(b)
|
1
2
3
4
5
6
|
a = {"name":"andy","gender":"male"}
b = {"name":"panny","gender":"female"}
c = {
"a":["andy","andrew"],
"b":["bob"]
}
|
字典取值,使用key(字符型索引)进去获取:
2.2 算法
流程控制
- if elif
- while
- for range break continue pass
- 三元运算
1
2
3
4
|
i = 0
while i < 5:
i+=1
print(i)
|
1
2
3
4
5
|
for n in range(2, 10):
for x in range(2, n):
if n % x == 0:
print(n, 'equals', x, '*', n//x)
break
|
1
2
|
x = 4
b = 0 if x % 2 == 0 else 1
|
函数
数学上的函数:“一般的,在一个变化过程中,假设有两个变量x、y,如果对于任意一个x都有唯一确定的一个y和它对应,那么就称x是自变量,y是x的函数。” 。比如:y=f(x)=2x+1, y=f(x)=-2x+1
程序上的函数: 接受零个、一个或者多个输入数据,对其进行数据处理,返回一个或者多个结果的程序片段
1
2
3
4
|
def say_hello():
print("hello")
say_hello()
|
- 语法规则: 关键字,格式(空格,冒号,缩进),函数名称,参数,默认值, 返回值
- 作用域
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
def p(x):
y = 2*x+1
return y
def p1(x):
y = -2*x+1
return y
def m(a):
b = []
for x in a:
y = p(x) # 重用
b.append(y)
return b
def main():
a = [1,2,3]
b = m(a)
print(b)
main()
|
乐高积木
3. python魔法
魔法:一些python的特性、约定或者技巧,可以让程序更高效
切片
索引表
1
2
3
4
5
|
+---+---+---+---+---+---+
| P | y | t | h | o | n |
+---+---+---+---+---+---+
0 1 2 3 4 5
-6 -5 -4 -3 -2 -1
|
示例:
1
2
3
4
5
6
|
word ="Python"
word[0:2]
word[2:5]
word[:2]
word[4:]
word[-2:]
|
列表推导式
1
2
3
4
5
6
7
|
def p(x):
y = 2*x+1
return y
a = [1,2,3]
b = [ p(x) for x in a]
print(b)
|
4. 开机有益
1
2
3
4
5
6
|
日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词。
A说:不是我。
B说:是C。
C说:是D。
D说:C在胡说
已知3个人说了真话,1个人说的是假话。
|
1
2
3
4
5
6
7
8
9
|
person = ["A", "B", "C", "D"]
for killer in person:
is_a = 1 if killer != "A" else 0
is_b = 1 if killer == "C" else 0
is_c = 1 if killer == "D" else 0
is_d = 1 if killer != "D" else 0
if is_a + is_b + is_c + is_d == 3:
print("killer is:", killer)
break
|
1
2
3
|
+---+---+---+---+---+---+
| P | y | t | h | o | n |
+---+---+---+---+---+---+
|
课后练习
推荐链接
Python 入门指南
在 Windows 上使用 Python 进行开发