• 第二周


    模块初识(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
     
     


     
     
     
  • 相关阅读:
    教你如何用Meterpreter渗透Win系统
    Maven 自动打包上传到私服 Nexus
    从同事的一个提问想到的学习途径
    SAS学习笔记之《SAS编程与数据挖掘商业案例》(1)系统简介和编程基础
    StackOverflowError&OutOfMemoryError区别
    优先使用TimeUnit类中的sleep()
    Java 开源博客 Solo 1.3.0 发布
    Java 开源博客 Solo 1.3.0 发布
    Cleanup failed to process the following paths错误的解决
    Java&Xml教程(六)使用JDOM解析XML文件
  • 原文地址:https://www.cnblogs.com/ddgjye/p/9307357.html
Copyright © 2020-2023  润新知