码迷,mamicode.com
首页 > 编程语言 > 详细

Python 第2周 - Python基础-模块\数据运算

时间:2017-08-01 20:46:18      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:python基础   八进制   按位运算   系统环境   个数   com   有一个   pad   lsp   

 

内容

    1. 模块初识
    2. 数据运算
    3. bytes数据类型
    4. python数据类型
    5. 列表的使用
    6. 元组与购物车操作
    7. 购物车程序练习
    8. 字符串常用操作
    9. 字典的使用 
    10. 三级菜单实例
    11. 本周作业-购物车优化

 

一、模块初识

  Python 库分两种:标准库(不需要安装,直接导入就可以直接使用的库)、第三方库(必须安装才能使用如django)。注意:编写代码时,模块名字不要跟库名字相同。系统自带模块简单举例:

 sys库:

   1、打印系统环境变量 sys.path:
1 import sys
2 print ("sys.path") 

 输出:

[‘D:\\python\\51CTO\\2day‘,

 ‘D:\\python\\51CTO‘,

 ‘C:\\Windows\\system32\\python27.zip‘,
 ‘C:\\Python27\\DLLs‘, 
 ‘C:\\Python27\\lib‘, 
 ‘C:\\Python27\\lib\\plat-win‘, 
 ‘C:\\Python27\\lib\\lib-tk‘, 
 ‘C:\\Python27‘, 
 ‘C:\\Python27\\lib\\site-packages‘]

 Python的第三方库会存放在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"

_password = "chen123"
username = input("name:")
password = input("passwd:")
if username == _username and password == _password:
    print (username,password)
else:
    print ("IT‘s error!")

输出:

name:chen
passwd:chen123
chen chen123

导入login.py

#vim login1.py  (注意,与login.py同级目录下导入login模块)

 import login

 执行脚本:python login1.py 

 输出:

name:chen
passwd: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

 

Python 第2周 - Python基础-模块\数据运算

标签:python基础   八进制   按位运算   系统环境   个数   com   有一个   pad   lsp   

原文地址:http://www.cnblogs.com/chen170615/p/7183326.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!