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()大小写
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出两个完全独立的两个列表
这里做了一个简单的例子:
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)
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是否存在 例如 “class” in studentA:判断 “class”这个key是否存在字典中
====上次作业中的三级菜单:
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()函数退出程序