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

内容

    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‘

音频、视频都是二进制文件,要变成读的字符编码,就需要设置到转码。

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

时间: 2024-08-26 16:40:38

Python 第2周 - Python基础-模块\数据运算的相关文章

python第七周,二维数据的格式化和处理

二维数据的表示: 类表类型可以表示二维数据 [   [424,23423,2342],[131,535,3646]  ] 使用两层for循环可以便利每个元素 外层列表中每个元素可以对应一行,也可以对应一列 一维数据分为列表和集合类型,二维数据只有列表类型 CSV数据存储格式 国际通用的一二维数据存储格式,一般.csv扩展名,每行一个一维数据,采用逗号分隔,无空行 Excel软件可读入输出,一般编辑软件都可以产生,如果某个元素缺失,逗号仍要保留, 二维数据的表头可以作为数据存储,也可以另行存储,

python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。

本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding:utf-8from com.wenhy.crawler_baidu_baike import url_manager, html_downloader, html_parser, html_outputer print "爬虫百度百科调度入口" # 创建爬虫类class SpiderMai

python修行之路(三 模块初识及数据运算类型)

在python修行路上,果不其然的遇到了第一个困处,开始看不懂代码,开始出现理解苦难的现象,这是小白修行路上的正常现象.其实自己是很慌的,感觉很无助,能做的就是把自己学的慢慢记录下来,理一个自己的逻辑,尽量写清楚,写的通俗易懂,为与我类似的修行者做参考. 一.模块初识 Python的强大之处在于他有非常丰富和强大的标准库和第三方库,使用时安装调用就好,现在先象征性的学习2个简单的. sys模块--sys pass功能#!/usr/bin/env python# -*- coding: utf-8

python基础模块之序列化

---什么是序列化(picking)? 我们把变量从内存中变成可存储或传输的过程称之为序列化. 序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上. 反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickling. 举例:大家应该都玩过魔兽争霸,应该知道该游戏有一个存档的功能,我每次不想玩得时候就可以存档,然后再玩得时候我们根本不需要重新开始玩,只需要读档就可以了.我们现在学习的事面向对象的思想,那么在我们眼中不管是我们的游戏角色还是游戏中的怪物.装备

python第一周语言基础

控制语句 if语句,当条件成立时运行语句块.经常与else, elif(相当于else if) 配合使用. for语句,遍历列表.字符串.字典.集合等迭代器,依次处理迭代器中的每个元素. while语句,当条件为真时,循环运行语句块. try语句,与except,finally配合使用处理在程序运行中出现的异常情况. class语句,用于定义类型. def语句,用于定义函数和类型的方法. pass语句,表示此行为空,不运行任何操作. assert语句,用于程序调试阶段时测试运行条件是否满足. w

python之路,Python基础篇2(第二周)

一..pyc是个什么鬼: pyc文件其实是PyCodeObject的一种持久化保存方式. 二.数据类型 1.数字: 2 是一个整数的例子. 长整数 不过是大一些的整数. 3.23和52.3E-4是浮点数的例子.E标记表示10的幂.在这里,52.3E-4表示52.3 * 10-4. (-5+4j)和(2.3-4.6j)是复数的例子,其中-5,4为实数,j为虚数,数学中表示复数是什么? int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-214748364

python基础8 数据类型和数据运算

本节内容: 数据类型 数据运算 入门拾遗 参考网页 数据类型 数字 int(整型) 在32位机器上,整数的位数为32位,取值范围为-231-231-1,即-2147483648-2147483647 在64位系统上,整数的位数为64位,取值范围为-263-263-1,即-9223372036854775808-9223372036854775807 long(长整型) 跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长

python基础之变量类型和数据运算

一.变量的类型 程序中,为了更充分的利用内存空间以及更有效率的管理内存,变量是有不同的类型的. 怎样知道一个变量的类型呢? 在python中,只要定义了一个变量,而且它有数据,那么它的类型就已经确定了,不需要我们主动的去说明它的类型,系统会自动辨别 可以使用type(变量的名字),来查看变量的类型 name = "Python" age = 18 print(type(name),type(age)) —————————————————————————————————— <cla

作为比湖南还火的python网红,零基础要如何系统的开始学习呢?

Python(发音:英[?pa?θ?n],美[?pa?θɑ:n]),是一种面向对象.直译式电脑编程语言,也是一种功能强大的通用型语言,已经具有近二十年的发展历史,成熟且稳定.它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务.它的语法非常简捷和清晰,与其它大多数程序设计语言不一样,它使用缩进来定义语句. Python支持命令式程序设计.面向对象程序设计.函数式编程.面向切面编程.泛型编程多种编程范式.与Scheme.Ruby.Perl.Tcl等动态语言一样,Python具备垃圾回收