zoukankan      html  css  js  c++  java
  • 第二周

    模块初识(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 33[31;1m%s33[0m"%(p_item,salary))
                    else:
                        print("你的余额只剩33[32;1m%s33[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 	name 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 - 这指定了替换字符“ ”要替换的字符数。
    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 '.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(' '))
    print('1+2 +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
     
     


     
     
     
  • 相关阅读:
    119. Pascal's Triangle II
    118. Pascal's Triangle
    112. Path Sum
    111. Minimum Depth of Binary Tree
    110. Balanced Binary Tree
    108. Convert Sorted Array to Binary Search Tree
    88. Merge Sorted Array
    83. Remove Duplicates from Sorted List
    70. Climbing Stairs
    陌陌面试经历
  • 原文地址:https://www.cnblogs.com/ddgjye/p/9307357.html
Copyright © 2011-2022 走看看