第二天学习,str,list,tuple,dict以及sys,os模块

sys模块

  sys.path():打印python的环境变量

  sys.avgs():打印当前文件,所在位置(相对位置)

  需要注意的是,import sys模块的时候,自己的文件名不能和模块名一样,要不python默认就是找当前目录下的自己的这个文件了

os模块

  os.popen():接受输入的命令:

    

imporrt os

res = os.popen("dir").read()
#os.system(command):这个直接在控制台打印出结构,并没有返回值,所以一般使用 popen(),这个将结果保存在内存的栈存区中,按流的形式读取
print(res)

执行的结果

 str:这里自己学习后,记住的方法

name = "Mr Zhang"
#切片
name[:2]#结果是 Mr
name.encode("utf-8")#安urf-8编码,转为二进制(字母占一个字节,汉字占3个字节)
name.endswith("")#以什么结尾
name.startswith()#以什么开头
name.strip()#去掉前后的空格和换行符
name.split(“”)#按“”切割字符串变为列表
name.index("")#返回角标
name.replace(old,new)#将老的替换为新的
name.isdigit()#是否是数字
name.lower(),name.upper()大小写
View Code

 list:列表

classnames = ["one","two","three","four"]
#l列表角标从0开始
#增加
classnames.append("five")
classnames.insert(1,"six")#安角标插入数据
#删除
classnames.remove("one")
del classnames[0]
classnames.pop()#默认最后一个,加上角标,就删除某一个角标的元素
#修改
classnames[1] = "zhang"#当角标不存在的时候报错
#
classnames[2] ,这个就是2角标的值,但是当不存在的时候报错

#可以使用 copy,浅copy出一个新的列表,当列表中又包含一个列表的时候,列表里面的保存的列表的内存地址
可以导入 import copy模块
使用copy.deepcopy():这样就copy出两个完全独立的两个列表
View Code

这里做了一个简单的例子:

1.启动时,让用户输入工资,打印出商品列表
2.允许用户根据商品编号购买商品
3.用户选择商品后,检测余额是否足够,够直接扣款,不够提示
4.可随时退出,退出时,打印已购买商品和余额
goods = [("a",10),("b",20),("c",30),("d",40)]
hasBuy = []
for good in goods:
    print(goods.index(good)+1,good)
money = int(input("your money:"))
while True:
    index = input("please input your choose num,if you want to exit,you can input 'q':")
    if 'q'== index :
        break
    if index.isdigit():
        index = int(index)
    # index = int(input("please input your choose num:"))
        if index > len(goods) and index > 0:
            print("your choose is not exit \033[31;1madafdasd\033[0m")
            continue
        googsprice = goods[index-1][1]
        if googsprice > money:
            print("your money is not enough!")
            # continue
        else:
            money -= googsprice
            hasBuy.append(goods[index-1])
            print("you has buy",hasBuy)
            # continue
    # else:
    #     pass
print(hasBuy,money)
View Code

dict:字典  

#字典是已键值对的,字典中的元素是无序的
studentA = {
    "name":"zhang",
    "age":20,
     "sex":"male"      
}
#字典里可以包含字典,列表(这里上次的那个作业,这里可以使用字典来处理)
#增加与修改,当这个key存在时,修改,当这个key不存在时是增加
studentA["class"] = "one"
#删除
def studentA["class"]
studentA.pop("class")
#查找
studentA["class"]#这个当key不存在时候回报错建议使用get方法
studentA.get("class")#当不存在的时候返回none
#遍历字典
for k in studentA:
    print(k,studentA[k])
#当数据量少的时候可以使用下面那个方法
for k,v in studentA.items():
    print(k,v)
#无论是列表还是字典,都可以使用 key in(not) list/dict来判断这个key是否存在
例如
“classin studentA:判断 “class”这个key是否存在字典中
View Code

====上次作业中的三级菜单:

areas = {
    "北京":{
        "朝阳区":["北京化工大学","对外经济贸易大学","首都经济贸易大学"],
        "海淀区":["北京大学","清华大学","北京科技大学","北京外国语大学"]
    },
    "上海":{
        "浦东新区":["上海海事大学","上海中医药大学"],
        "黄浦":["上海工商学院","上海第二工业大学黄浦分校"]
    }
}

#打印出所有的市
for k in areas:
    print(k)
#用户选择一个市,打印出市中所有的区
while True:
    chooseCity = input("chooseCity==>")
    if chooseCity in areas:
        for k in areas[chooseCity]:
            print(k)
        #选择输入的区
        while True:
            choosequ = input("choosequ==>")
            if choosequ in areas[chooseCity]:
                for k in areas[chooseCity][choosequ] :
                    print(k)
            elif choosequ == 'q':
                exit()
            elif choosequ == 'b':
                break
    elif chooseCity == 'q':
        exit()  # 使用exit()函数退出程序
View Code

 

posted @ 2017-12-06 16:46  上官_延  阅读(160)  评论(0编辑  收藏  举报