zoukankan      html  css  js  c++  java
  • Python第二节

    模块初识  

    • Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相应的Python库支持,以后的课程中会深入讲解常用到的各种库,现在,我们先来象征性的学2个简单的。
    • 标准库:不需要安装直接导入
    • 第三方库:必须安装下载

    标准库模块:

    • sys模块
    # Author:XP
    import sys
    print(sys.path) #打印环境变量
    print(sys.argv) #打印相对路径
    print(sys.argv[2])
    • os模块
    # Author:XP
    import os
    cmd_res = os.system("dir") #执行命令不保存结果
    cmd_res = os.popen("dir").read()#执行命令保存结果
    print("-->",cmd_res)
    os.mkdir("new_dir") #创建目录哭
    

    pyc是什么

    简述Python的运行过程

    在说这个问题之前,我们先来说两个概念,PyCodeObject和pyc文件。

    我们在硬盘上看到的pyc自然不必多说,而其实PyCodeObject则是Python编译器真正编译成的结果。我们先简单知道就可以了,继续向下看。

    当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。

    当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程。

    所以我们应该这样来定位PyCodeObject和pyc文件,我们说pyc文件其实是PyCodeObject的一种持久化保存方式。

    数据类型:

    int:(整形)
    long:(长整形)《--(python3没有)
    float:(小数and浮点数)浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。

    布尔值:【True:真(1)】或【False:假(0)】

    列表:

    创建列表:
    names = ['ZhangYang''GuYun''xp','liangcheng']
        print(names[1],names[2])
    #切片:(查)
        print(names[1:3])
        GuYun xp
     
    #反向取值切片:
        print(names[-2:])
        xp liangcheng
    提示:前后(正负)取值 下标为0时可以省略这个0如:[2:]、[-2:]
     
    #不长切片
        print(names[::2]) 
     
    #插入(增)
        names.insert(1,"nihao")
        names.insert(3,"keyi")
     
    #改
        names[2] ="xiedi"
     
    #删
        del names[1]
        names.remove(xp)
     
    #查找一个用户的位置点
        print(names.index("xp"))
        print(names[names.index("xp")])
     
    #查找统计列表中的重复字符串的数量
        print(names.count("xp"))
     
    #清空列表
        names.clear()
     
    #反转列表:
        names.reverse()
     
    #按字母顺序排序【特殊符号-->数字-->大写字母-->小写】
        names.sort()
     
    #列表合并:
        names2 = [1,2,3,4]
        names.extend(names2)
     
    ##copy模块:
          import copy
    names = ['ZhangYang''GuYun''xp','liangcheng']
    #三种浅拷贝:
          n1=copy.copy(names)
          n2=name[:]
          n3=list(names)
     
    #深拷贝:
        name2 = copy.deepcopy(names)
     
     

    元组

    (不可变列表)

    创建元组:
    ages = (1122334455)

    程序练习 

    请闭眼写出以下程序。

    程序:购物车程序

    需求:

    1. 启动程序后,让用户输入工资,然后打印商品列表
    2. 允许用户根据商品编号购买商品
    3. 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 
    4. 可随时退出,退出时,打印已购买商品和余额
    #Author:XP
    product_list = [
        ('Iphone',5800),
        ('Mac Pro',9800),
        ('Watch',10600),
        ('Bike',800),
        ('Coffee',31),
        ('Alex Python',120),
    ]
    shopping_list=[]
    salary = input("输入工资:")
    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("Added %s into shopping cart,your current balance is 33[31;1m%s33[0m"%(p_item,salary))
                    else:
                        print("33[41;1m你的余额只剩[%s]啦,还买个毛线33[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:",salary)
                exit(1)
            else:
                print("invalid option") 

    字符串常用操作:

    name = "My name is Xp"
    print(name.capitalize()) #首字母大写
    print(name.count("a")) #查看有几个相同的字符串
    print(name.center(50,"-"))#打印50个字符不够的话用‘-’补全
    print(name.endswith("xp")) #以什么结尾
    print(name.expandtabs(tabsize=30))#转成多少个"这里是30个"空格
    print(name.find(name))#找字符串的索引
    print('Xp'.lower()) #大写转换成小写
    print('Xp'.upper())#小写转换成大写
    print(name.format(name='Xp',year=123))
    #print(name.format_map( {'name';'Xp','year';12}  ))
    print('ab23'.isalnum())
    print('abA'.isalpha())
    print('1.23'.is_integer())
    print('a 1A'.isidentifier())#判断是不是一个合法的标识符

    字典操作:

    字典一种key - value 的数据类型,使用就像我们上学用的字典,通过笔划、字母来查对应页的详细内容。

    语法:

    info = {
        'stu1101': "TengLan Wu",
        'stu1102': "LongZe Luola",
        'stu1103': "XiaoZe Maliya",
    }
    # info["stu1101"] ="武藤兰" #改
    # info["stu1104"] ="CangJinKong"#该字符串存在就修改不存在就添加
    #print(info["stu1101"]) #查
    #del info["stu1101"] #删除
    #info.pop("stu1101") #判断字典里是否有数据
    #info.popitem("stu1101")#随机删除也可指定
    #print(info.get('stu1104'))#在字典里精确查找
    #print('stu1104' in info)#判断字典里是否有此字符串
    #info has_key('1103) #py2.7里判断字典里是否有此字符串

    字典的特性:

    • dict是无序的
    • key必须是唯一的,so 天生去重

    循环:

    info = {
        'stu1101': "TengLan Wu",
        'stu1102': "LongZe Luola",
        'stu1103': "XiaoZe Maliya",
    }
    for i in (info):
        print(i,info[i])
    

      

  • 相关阅读:
    横向技术分析C#、C++和Java优劣
    XML数据流主动服务系统的设计与实现
    ASP.NET 状态管理
    Oracle中如何从BasicFile迁移到SecureFile
    让UpdatePanel支持上传文件
    C#和Visual Basic渐行渐远之匿名类型
    wpf 移动变换
    WPF 样式学习总结
    临江仙
    wpf 动画效果
  • 原文地址:https://www.cnblogs.com/xgblog/p/5724044.html
Copyright © 2011-2022 走看看