内容
- 模块初识
- 数据运算
- bytes数据类型
- python数据类型
- 列表的使用
- 元组与购物车操作
- 购物车程序练习
- 字符串常用操作
- 字典的使用
- 三级菜单实例
- 本周作业-购物车优化
一、模块初识
Python 库分两种:标准库(不需要安装,直接导入就可以直接使用的库)、第三方库(必须安装才能使用如django)。注意:编写代码时,模块名字不要跟库名字相同。系统自带模块简单举例:
sys库:
1、打印系统环境变量 sys.path:
1 | import sys |
2 | print ("sys.path") |
输出:
|
ython的第三方库会存放在site-packages目录下。
2、sys.argv 执行脚本时获取传递的参数:
1 | #!/usr/bin/env python |
2 | #--*-- coding:utf-8 --*-- |
3 | import sys |
4 | print (sys.argv[3]) #取列表中的第三个数 |
输出:
执行脚本:
# python sys_argv.py chen chang qing
qing
os库:
1、调用系统命令os.system("dir")
import os |
print (os.system("dir")) |
# 执行命令,结果直接输出,不保存结果。结果出乱码
2、使用另外一个模块调取使用:os.popen
1 | import os |
2 | cmd_res = os.popen("dir").read() # os.popen会把读取的信息写到内存里面,read()重新把内存里面的信息读取出来 |
3 | print (cmd_res) |
| |
pycharm 输出结果,中文不显示乱码了。
3、os.mkdir 模块
import os |
os.mkdir("new_dir_test") #会在当前的目录下,创建一个新目录 |
自己写个简单模块:
简单的login登陆判断,模块如下:
#vim login.py
#Author:ChenChangQing
_username = "chen"
"chen123"
"name:")
"passwd:")
if username == _username and password == _password:
print (username,password)
else:
("IT's error!")
输出:
chen
chen123
chen chen123
导入login.py
#vim login1.py (注意,与login.py同级目录下导入login模块)
import login
执行脚本:python login1.py
输出:
chen
123
IT's error!
简述Python的运行过程(摘录)
两个概念,PyCodeObject和pyc文件。
我们在硬盘上看到的pyc自然不必多说,而其实PyCodeObject则是Python编译器真正编译成的结果。我们先简单知道就可以了,继续向下看。
当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。
当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程。
所以我们应该这样来定位PyCodeObject和pyc文件,我们说pyc文件其实是PyCodeObject的一种持久化保存方式。
二、python 数据运算
1 、Python 算术运算
举例:
1 #Author:ChenChangQing
2
3 a = 10
4 b = 20
5 c = 3
6
7 #相加 +
8 d = a + b
9 print ("1 - d 的值为:",d)
10
11 #相减 -
12 d = b - a
13 print ("2 - d 的值为:",d)
14
15 #相乘 *
16 d = a*b
17 print ("3 - d 的值为:",d)
18
19 #相除 /
20 d = int(b/a)
21 print ("4 - d 的值为:",d) #取整数
22 print ("4 - d 的值为:",b/a) #直接打印浮点
23
24 #取余数 %
25 d = a % c
26 print ("5 - d 的值为:",d)
27
28 #幂次方 **
29 d = c**3
30 print ("6 - d 的值为:",d)
31
32 #取整数
33 d = a//3
34 print ("7 - d 的值为:",d)
35
36 输出
37
38 1 - d 的值为: 30
39 2 - d 的值为: 10
40 3 - d 的值为: 200
41 4 - d 的值为: 2
42 4 - d 的值为: 2.0
43 5 - d 的值为: 1
44 6 - d 的值为: 27
45 7 - d 的值为: 3
数字运算
2、Python 比较运算(关系型运算)
举例:
1 a = 10
2 b = 20
3
4 #判断a与b相等
5 if a == b:
6 print ("1 :a与b相等")
7 else:
8 print ("1 :a与b不相等")
9
10 #判断a与b不相等
11 if a != b:
12 print ("2 :a与不相等")
13 else:
14 print ("2 :a与b相等")
15
16 #判断a 大于 b
17 if a > b:
18 print ("3 :a大于b")
19 else:
20 print ("3 :a小于b")
21
22 #判断a 小于 b
23 if a < b:
24 print ("4 :a小于b")
25 else:
26 print ("4 :a大于b")
27
28 #判断a 大于等于 b
29 if a >= b:
30 print ("5 :a大于等于b")
31 else:
32 print ("5 :a小于b")
33
34 #判断a 大于等于 b
35 if a >= b:
36 print ("6 :a大于等于b")
37 else:
38 print ("6 :a小于b")
39
40 #判断a 小于等于 b
41 if a <= b:
42 print ("7 :a小于等于b")
43 else:
44 print ("7 :a大于b")
45
46 输出:
47 1 :a与b不相等
48 2 :a与不相等
49 3 :a小于b
50 4 :a小于b
51 4 :a小于b
52 4 :a小于b
53 4 :a小于等于b
关系运算
3、Python 赋值运算
举例:
1 #把ab值的和赋给C
2 a = 10
3 b = 20
4 c = 0
5
6 c = a + b
7 print ("1 - c 的值:" ,c)
8
9 #+=的用法
10 a = 10
11 b = 20
12 c = 0
13
14 c += a #等同于 c = c+a
15 print ("2 - c 的值:" ,c)
16
17 #-=的用户
18 a = 10
19 b = 20
20 c = 30
21
22 c -= a #等同于 c = c - a
23 print ("3 - c 的值:" ,c)
24
25 #*= 的用法
26 a = 10
27 b = 20
28 c = 3
29
30 c *= a #等同于 c = c * a
31 print ("4 - c 的值:" ,c)
32
33 #/= 的用法
34 a = 10
35 b = 20
36 c = 5
37
38 c /= a #等同于 c = c / a
39 print ("5 - c 的值:" ,c)
40
41
42 #%= 的用法
43 a = 10
44 b = 20
45 c = 3
46
47 c %= a #等同于 c = c % a
48 print ("6 - c 的值:" ,c)
49
50 #**= 的用法
51 a = 10
52 b = 20
53 c = 2
54
55 c **= a #等同于 c = c**a
56 print ("7 - c 的值:" ,c)
57
58 #//= 的用法
59 a = 10
60 b = 20
61 c = 50
62
63 c //= a #等同于 c = c//a
64 print ("8 - c 的值:" ,c)
65
66 输出:
67 1 - c 的值: 30
68 2 - c 的值: 10
69 3 - c 的值: 20
70 4 - c 的值: 30
71 5 - c 的值: 0.5
72 6 - c 的值: 3
73 7 - c 的值: 1024
74 8 - c 的值: 5
赋值运算
4、Python 逻辑运算
举例:
逻辑运算
1 #Author:ChenChangQing
2
3 a = 10
4 b = 20
5 c = 0
6
7 if a and b: #a与b的数值其中有一个为0,则为假
8 print ("1:a为真,b为真,则为真")
9 else:
10 print ("1:否则为假")
11
12 if a or c:
13 print ("2:a为真,b为真,或其中一个为真,则为真")
14 else:
15 print ("2:变量a 、c 都不为真")
16
17 #not 逆向理解:当a为真时,返回假;当a假时,则返回真。。C = 0 为假
18 if not c:
19 print ("3:true")
20 else:
21 print ("3:fales")
22 输出:
23 1:a为真,b为真,则为真
24 2:a为真,b为真,或其中一个为真,则为真
25 3:true
5、python 成员运算
Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。
举例:
成员运算
6、Python 身份运算
举例:
1 a = 10
2 b = 10
3 c = 5
4 d = (5,15,12,45)
5
6 if a is b:
7 print ("1 - a与b有相同的标示位")
8
9 if a is not c:
10 print ("2 - a与c没有相同的标示位")
11
12 if a is not d:
13 print ("3 - a 不在d 列表里面")
14
15 输出:
16 1 - a与b有相同的标示位
17 2 - a与c没有相同的标示位
18 3 - a 不在d 列表里面
19
20 备注:身份运算,个人理解更多的是交集跟非交集合之间的运算。
身份运算
is 与 == 区别:
is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等
7、Python 运算符优先级
简单举例:
1 a = 35
2 b = 25
3 c = 15
4 d = 5
5 e = 0
6
7 f = (a + b) * c / d #( 30 * 15 ) / 5
8 print ("(a + b) * c / d 运算结果为:", f)
9
10 f = ((a + b) * c) / d # (30 * 15 ) / 5
11 print ("((a + b) * c) / d 运算结果为:", f)
12
13 f = (a + b) * (c / d); # (30) * (15/5)
14 print ("(a + b) * (c / d) 运算结果为:", f)
15
16 f = a + (b * c) / d; # 20 + (150/5)
17 print ("a + (b * c) / d 运算结果为:", f)
18
19 输出:
20 (a + b) * c / d 运算结果为: 180.0
21 ((a + b) * c) / d 运算结果为: 180.0
22 (a + b) * (c / d) 运算结果为: 180.0
23 a + (b * c) / d 运算结果为: 110.0
优先级运算
8、Python位运算符
按位运算符是把数字看作二进制来进行计算的。
根据数字与二进制的转换方法来计算:
网上摘录列子,可参考:
位运算 三、bytes数据类型
1、bytes数据类型
先看一下string和bytes的关系
1 msg = "很好"
2
3 print (msg)
4 print (msg.encode(encoding="utf8"))
5
6 输出:
7 很好
8 b'\xe5\xbe\x88\xe5\xa5\xbd'
View Code
音频、视频都是二进制文件,要变成读的字符编码,就需要设置到转码。
2、三元运算
语法:result
=
值
1
if
条件
else
值
2
理解过程:一条命令解决。三元运算,先看中间if的语句部分:
A 、IF中如果a 大于 b成立 ,则d = b, 否则d = c 。实际a = 1 ,b=5 ,a>b不成立。则d = c ,所以d 的值为 7 ;
B 、IF中如果a 小于 b成立 ,则d = b, 否则d = c 。实际a = 1 ,b=5 ,a<b成立。则d = b,所以d 的值为 5;
3、进制的理解
- 二进制,01
- 八进制,01234567
- 十进制,0123456789
- 十六进制,0123456789ABCDEF #A-F 表示 10-15的对应数字。
理解: 二进制到16进制转换 http://jingyan.baidu.com/album/47a29f24292608c0142399cb.html?picindex=1