模块初识(sys,os)

sys模块介绍:

sys.path

功能:获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到,如下

print(sys.path)   #打印环境变量,当然是已经import sys模块了

sys.argv

功能:在外部向程序内部传递参数,示例如下

print(sys.argv) 
print(sys.argv[2])



os模块介绍:
os.system(“dir”) 功能:打印当前系统文件目录,只执行不保存运行结果
cmd_res = os.popen("dir").read()    #保存执行结果
os.mkdir("new_dir")  #当前目录下创建一个目录


数据类型介绍:
整型、浮点数、字符串、布尔值、列表、元组、字典等。

列表的操作:
names = ["zhangle","weiliija","changxiying","zhangxing","yeqin","weichuanshou"]   #创建列表
print(names[0],names[4]) #取出指定位置的元素
print(names[0:3]) #取出元素,下标从0到2,不包括尾部元素,切片
print(names[-3:-1]) #从最后一个元素开始往左取数,同样不包括尾数
names.append("wangshuaiqi") #在列表最后面添加数据
names.insert(1,"yeqin") #在1位置插入“lizhao”
names[4] = "yeyeye" #在指定位置赋值,替换以前的值
names.remove("yeyeye") #直接删除名字
del names[4] #删除给定位置元素
names.pop(3) #等同于del
names.reverse() #反转列表
names.sort() #列表元素整理
print(names.count("yeqin")) #计算指定名字个数
names2 = ["haha","hehe","dada"]
names.extend(names2) #把names2添加到names
name2 = names.copy() #复制names到name2
name2 = names[:] #复制方法二
name2 = list(names) #复制方法三

注意:元组(tuple)和列表差不多,也是存一组数据,但是元组一旦创建,不可修改,被称为只读列表。

练习1
要求:1、启动程序后
让用户输入工资然后打印商品列表
2
、允许用户根据商品编号购买商品
3、用户选择商品后判断用户余额是否足够,够就直接购买,不够就提醒
4、可随时退出,退出时打印已购商品和余额

代码如下:
product_list = [('Iphone',5800),('MAc Pro',9800),('Bike',800),('watch',10600),('Alex Python',120)]
shopping_list = []
salary = input("please input your salary:")
if salary.isdigit():
    salary = int(salary)
    while True:
        for index,item in enumerate(product_list):
            print(index,item)
        user_choice = input("你选择要买吗?>>>:")
        if user_choice.isdigit():
            user_choice = int (user_choice)
            if user_choice < len(product_list) and user_choice >= 0:
                p_item = product_list[user_choice]
                if p_item[1] <= salary:
                    shopping_list.append(p_item)
                    salary -= p_item[1]
                    print("add %s into shopping cart,your current balance is \033[31;1m%s\033[0m"%(p_item,salary))
                else:
                    print("你的余额只剩\033[32;1m%s\033[0m,买不起该商品" %salary)
            else:
                print("product code [%s] is not exist" %user_choice)
        elif user_choice == 'q':
            print("-----shopping list-----")
            for p in shopping_list:
                print(p)
            print("your current balance is %s" %salary)
            exit()
        else:
            print("invalid option!")

字符串操作:
name = "my \tname is {name} and i am {age} year old"  #写一段字符串
print(name.capitalize()) #首字母大写,其他都小写
print(name.count("a"))
print(name.center(50,"-")) #字符串居中,两边用-补齐
print(name.endswith("ex")) #判断是否一“ex”结束
print(name.expandtabs(tabsize=30)) #tabsize - 这指定了替换字符“\t”要替换的字符数。
print(name[name.find("name"):])
print(name.format(name="yeqin",age="22"))
print(name.format_map({'name':'yeqin','age':22}))
print('ab123'.isalnum()) #是否全是字母和数字,并至少有一个字符
print('abH'.isalpha())
print('1A'.isdecimal())
print('a 1a'.isidentifier()) #判断是否是一个合法的标识符
print('my name is yeqin'.istitle())
print('My name is yeqin'.isupper())
print('+'.join(['1','2','3','4']))
print(name.ljust(50,'*')) #输出50个字符,左对齐,不足部分用*补齐
print('Alex\n'.rstrip) #移除右边空格
p = str.maketrans("abcdefli",'123$&456')
print('alex li'.translate(p))
print('alex li'.replace('l','L',1))
print('alex li'.rfind('l'))
print('1+2+3+4'.split('\n'))
print('1+2\n+3+4'.splitlines())
print('Alex Li'.swapcase()) #大小写互换
print('lex li'.zfill(50))

字典的操作:
info = {
'stu1101': "zhangle",
'stu1102': "weilijia",
'stu1103': "changziying",
}
#创建字典
print(info.get('stu1104'))  #查找数据
print('stu1104' in info) #判断某个值是否在字典中
info["stu1101"] = "张了"  #改变字典中的值
info["stu1104"] = "yeqin" #在字典中添加数据
#删除操作
# del info["stu1104"]
info.pop("stu1104")
for i in info:  #循环,推荐使用
print(i,info[i])
for k,v in info.items():
print(k,v)
b = {
'stu1101':"alex",
1:3,
2:5,
}
info.update(b) #合并两个字典

注意:字典中元素是无序的
 练习2
要求:三级列表
data = {
    '北京':{
        "昌平":{
            "沙河": ["oldboy", "test"],
            "天通苑": ["链家地产", "我爱我家"]
        },
        "朝阳":{
            "望京":["奔驰","陌陌"],
             "国贸":["CICC","HP"],
             "东直门":["Advent","飞信"],
         },
        "海定": {},
    },
    '山东':{
        "德州":{},
        "青岛":{},
        "济南":{}
    },
    '广东':{
        "东莞":{},
        "常熟":{},
        "佛山":{},
    },
}

exit_flag = False
while not exit_flag:
    for i in data:
        print(i)
    choice1 = input("选择进入1>>")
    if choice1 in data:
        while not exit_flag:
            for i2 in data[choice1]:
                print(i2)
            choice2 = input("选择进入2>>")
            if choice2 in data[choice1]:
                while not exit_flag:
                    for i3 in data[choice1][choice2]:
                        print(i3)
                    choice3 = input("选择进入3>>")
                    if choice3 in data[choice1][choice2]:
                        for i4 in data[choice1][choice2][choice3]:
                            print(i4)
                        choice4 = input("最后一层,按b返回>>")
                        if choice4 == 'b':
                            pass
                        elif choice4 == 'q':
                             exit_flag = True
                    if choice3 == 'b':
                        break
                    elif choice3 == 'q':
                        exit_flag = True
            if choice2 == 'b':
                break
            elif choice2 == 'q':
                exit_flag = True

 

 
 


 
 
 
posted on 2018-07-13 20:57  飞下落葉  阅读(136)  评论(0编辑  收藏  举报