python第二周 模块的认识,数据类型,运算
一、模块的认识。
模块:指的是把预先写好的内容封装成一个模块,可用时直接调用,模块又称为库
模块又称为标准库和第三方库。
标准库,默认安装好官方所公布的库 C:\Python35\Lib
第三方库,是从网上下载下来需要安装上去。C:\Python35\Lib\site-packages
getpass模块 用户输入密码为加密。
sys.path 打印当前变量
sys.argv 打印绝对路径。CMD下模拟运行 后面加1 2 3
print(sys.argv[2]) 调用上面输出的第2 计算机计算都是从0开始。输出的时候可单独取上面一数字。
os.system 调用系统
os.popen 输出结果
import sys
print(sys.path) #打印变量。
print(sys.argv) #打印当前绝对路径 print(sys.argv) 1 2 3。
os
import os
cmd_os = os.system("dir") #显示结果,但不保存结果。
cmd_os = os.popen("dir").read() #显示结果只是先寄存到内存器里,用.read可读出来。
print("--->",cmd_os) #"--->"标记的意思。
os .mkdir("new_dir")
二、pyc是什么?
pyc存放在第三方库文件下
1、 Python是一门解释型语言。
2、计算机不能够识别高级语言。C++ JAVA编译型语言。
编译型在执行前,通过编译器对程序执行一个编译过程,转变成机器语言。运行时就不需要翻译,直接执行,速度快效率高。
解释型语言没有编译过程,而在运行的时候,通过解释器对程序逐行作出解释,然后直接运行,典型的是Ruby,Python.
java先编译后解释,会预编译。
3、Python到底是什么?
Python先解释后编译的语言。
4、python的运行过程
在说这个问题之前,我们先来说两个概念,PyCodeObject和pyc文件。
我们在硬盘上看到的pyc自然不必多说,而其实PyCodeObject则是Python编译器真正编译成的结果。我们先简单知道就可以了,继续向下看。
当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。
当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程。
所以我们应该这样来定位PyCodeObject和pyc文件,我们说pyc文件其实是PyCodeObject的一种持久化保存方式。

三、数据类型初识
1、int(整型)
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
long(长整型)
跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。
2、布尔值
真或假
True false
1 或 0
3、编码转换
msg = "你好!!!"
print(msg.encode("utf-8").decode()) 先转换UTF-8后再转回。
四、运算符
算数运算符:

比较运算:

赋值运算:

逻辑运算:

成员运算:

身份运算:

位运算:

五、三元运算
>>> a,b,c = 1,3,5 >>> d = a if a >b else c >>> d 5 >>> d = a if a <b else c >>> d 1 >>>
六、进制
二进制,01
八进制,01234567
十进制,0123456789
十六进制,0123456789ABCDEF 二进制到16进制转换http://jingyan.baidu.com/album/47a29f24292608c0142399cb.html?picindex=1
七、列表
name = ["4laotou","#xiaoming","lishi","!zhangfei"] #注意:列表中的字符是需要中括号,并且双引号逗号隔开
切片:
print(name[:2]) #切片 取前两个 :号前面没有输入值代表从零开始。
print(name[-2:]) #切片 取后两个值。
附加 .append:
name.append("xiaoli") #附加一个列表内容。
插入 .insert:
name.insert(1,"lanlou") #插入一个列表值,并把当前列表向后移。
name.insert(3,"wangbing") #插入一个列表值,并把当前列表的值向后移。
重定值:
name[2] = "shiji" #重新赋一个值改名称。
删除 .remove:
name.remove("lishi") #删除方法1
del name[3] #删除方法2
name .pop(2) #删除方法3
排序 .sort:
name.sort() #排序如有数字开头和特殊符号开头,不同的情况有不同的排序。
扩展模块:
name2 =["1","2","3"]
name.extend(name2)
print(name,name2)
查找索引 index:
print(name.index("lishi")) #查找索引。
rint(name[(name.index("lishi"))]) #查找到之后再打印出来。
统计 .count:
print(name.count("zhangshang")) #查询表里有几个zhanghsan
列表:
name = ["laotou","xiaoming",["lishi","zhangfei"],"pengqing"]
name2 = copy.copy() #潜拷贝
name2 = copy.deepcopy(name) #深拷贝,可以完全独立的克隆!
print(name)
print(name2)
name[1] = "小明"
name[2][0] = "李四"
print(name)
[]列表.[]里的数据,数据类型永远是列表.
{}花括号,通过.format动作.逐一将{}里内容赋值
()执行动作时,都要用()
购物车作业要求:
用户打开程序
用户输入薪资
打印商品列表
用户选择商品
判断输入的是否是商品存在的列表
判断余额是否足够
加入购物车
减商品金额
用户可随时退出
打印购买的商品列表
commodity = [
("xiaomi book Air",4500),
("cuizhi phone",3800),
("HuaWei book",5800),
("book",120),
("coffee",32),
]
shoping_list = [] #此处存的为已购买的商品列表!
salary = input("您的薪资多少?") #输入薪资
if salary.isdigit(): #对上一条输入的判断是否是数字类型
salary = int(salary) #如果不是需要用int来转换类型
while True:
for index,list in enumerate(commodity): #index,list前面指的是查询下标,后面的list指的是数据。
# for list in (commdity):
# print(commodity.index(list),list) 取下标来找商品列表,此种方法,效率比较低!
print(index,list)
select = input("您要买个什么玩意!请输入序号:") #输处要选择的商品序号
if select.isdigit(): # .isdigit()判断是否是整数,新的知识点。
select = int(select) #对整数进行整型。
if select < len(commodity) and select >=0: #判断输入的值是否在商品列表的下标序号,其中len判断列表长度并返回数字。
number = commodity[select] #通过下标 把商品取出来
if number[1] < salary: #判断所选商品价格是否小于薪资
shoping_list.append(number) #加入购物车列表
salary -= number[1] #薪资减去商品
print("已经购买了[%s],余额还有[%s]:"%(select,salary)) #打印已购买的商品列表和余额。
else:
print("你都买钱了还买个屁啊!")
else:
print("您选择的[%s]商品不存在"%select)
elif select == "q": #判断用户选择列表时是否为字符q
print("----- shoping list -----")
for s in shoping_list: #循环商品列表。
print(s)
print("你的余额还有:[%s]"%salary) #打印余额。
exit()
else:
print("invalid option")

浙公网安备 33010602011771号