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")

 

posted @ 2017-04-17 21:58  Byron-He  阅读(480)  评论(0)    收藏  举报