• Python学习:模块初识、数据类型


    1.模块初识

    在Python中,模块分为两种:

      (1)标准库

        标准库无需安装,只要在使用的时候import就可以使用了

      (2)第三方库

        第三方库必须下载安装之后才能够引入使用

    下面介绍两个基本的模块:

      (1)os模块

         os模块是和操作系统交互的模块,可以调用操作系统的一些命令。其常用的一些方法有:

          a)  os.system(“操作系统命令”)   返回命令执行状态码   0表示成功 :该方法只执行命令,不保存结果

          b)  os.popen(“操作系统命令”)   该命令将结果存到内存中,需要使用read()方法读取出来  例:os.popen(“命令”).read()

          c)  os.mkdir(“目录名”)  创建一个新目录

      (2)sys模块

        sys模块是Python解释器自带的使用C语言编写的模块,其常用的一些方法有:

          a)  sys.path       获取一些路径

          b)  sys.argv   获取相对路径和接受传递的参数,以列表的形式表示

          

          可以通过列表取值的方式获取相应的参数值

      (3)自定义模块

        引入自定义的模块或者第三方的模块,需要把模块放在site-packages目录下,在导入模块的时候,会从本地目录下开始找,然后去环境变量下找

        注意:自己定义模块不能与标准模块名字相同

    2.什么是Pyc文件

     3.三元运算

    语法:result = value1  if  条件  else value2

      

    4.Bytes类型

    Python3 最重要的特性是对文本和二进制数据作了更为清晰的区别,文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示。Python3不会以任意隐式的方式混用str和bytes,正是这使得两者的区别更为清晰。你不能拼接字符串和字节包,也无法在字节包里搜索字符串(反之亦然),也不能将字符串传入参数为字节包的函数中。

    字符串和二进制之间可以进行相互转化,转化方式如下:

    字符串和二进制数据相互转化的例子:

    字符串转成二进制场景:socket数据传输(在python3中只能传二进制)

    5.元组和列表

    列表:  names = [“zhangsan”,”lisi”,”wangwu”]

                   通过坐标索引取值,下标从0开始 names[0]的值为zhangsan

                   切片:取多个值,例取出zhangsan和lisi   names[0:2]  列表切片  不包括names[2] 

                   在不知道数组长度的时候获取最后一个元素names[-1]

                   知识点:从右边取值时  下标从-1开始  

        获取lisi和wangwu的值names[-2:]

               (注意:因为截止下标取不到值,省略后即可取到最后的值)

        跳着切片: 指定步长

               name[0:3:2]  2是步长

                   追加:

                   names.append(“zhangyong”)

                   插入:

                   插入到谁的前面,就写谁的坐标

                   如在lisi前面插入xuzhi

                   names.insert(1,”xuzhi”)

                   修改:

                   直接复制即可 names[2] = “其他值”

                   删除:

                   names.remove(“具体值”)

                   或者 del names[索引]

                   或者 names.pop()  如果不给参数,默认是删除最后一个元素,也可以指定具体索引删除

                   根据值找下标

                   names.index(“具体值”)

                   names.reverse()  列表反转

            names.sort()     按照字母顺序排序

                   names.extend(另一个元组)   合并另一个元组

                   copy方法(浅copy,复制的是第一个列表的引用)

                   复制一份元组

                   Names2 = names.copy()

                   注意:列表中嵌套的列表其实是存储的引用,当在names中修改第一层的值时,name2中不发生变化。  当修改names中的子列表的值时,name2中也会发生变化

                   列表中可以在嵌套列表

                   浅copy的三种方式:

        (1)copy.copy(names)

        (2)names[:]  (全部切片 0:-1  0可以省略  -1省略可以取到最后一个值)

        (3)list(names)  (工厂模式)

        浅copy应用实例:夫妻双方公有财产  (创建联合账号)

        Person = [“name”,[“saving”,100]]   模板

        Man = person[:]

        Woman = person[:]

        Man[0] = “zhangsan”

        Woman[0] = “lisi”

        二者有着共同的子列表

                   copy模块(可以使用该模块中的深copy)

                   import copy

                   name2 = copy.deepcopy(names)

                   列表循环:

                   for i in names :

                          print(i)

                   enumerate方法:可以将获取列表元素对应的索引:

                   如列表为:a = [“1”,”2”,”3”]

                   则enumerate(a) 为[(0,”1”),(1,”2”),(2,”3”)]

                   在列表循环的时候,可以使用该方法获取到索引信息

                   for index,value in enumerate(a):
                          print(index,value)

    元组:和列表类似,但是一旦创建便不能修改,称为只读列表,只能用于查

              格式:names = (“zhangsan”,”lisi”,”wangwu”)

              只有两个方法:

              count:

              index:

    6.字符串常用操作

       Str = “zhangyong”

            Str.capitalize()  首字母大写

            Str.count(“a”)   统计某个子串的个数,可以指定起始位置

            Str.center(50,”-”)  一共打印50个字符,不够的用-填充,str在中间

            Str.endswith(“”)  判断字符串以什么结尾  比如判断邮箱以什么结尾

            Str.find(“”)  查找字符或字符串首字母所在的索引

            Str.format()  和str.format_map(“传字典”) 功能类似

            Str.isalnum()  判断是否只有字母和阿拉伯数字

            Str.isalpha()   判断只有英文字母

            Str.isdigit()    判断是否只有数字

            Str.isidentifier()  判断是不是一个合法的标识符

            Str.islower()是否是小写

            Str.issupper()是否是大写

            “+”.join([“”,””,””])   将列表转换成字符串,以+号间隔

            Str.ljust(50,“*”)  50个字符,str不够的地方在右侧用*补全

            Str.rjust(50,”*”) 50个字符,str不够的地方在左侧用*补全

            Str.lower()  str.upper()   大写转小写  小写转大写

            lstrip() 和 rstrip()   strip()   会去掉空格和回车

            split()   将字符串按照指定字符分割成列表

            swapcase()  大小写反转

      Str.replace(“old”,”new”,location)  替换字符   location省略表示替换所有的

      

    7.字典

    Key,value的数据类型,和json串类似

    字典特性: 无序、去重

    定义字典:info = {“key”:value,””:””}

    取值:info[“key”]  该方法如果key不存在则会出错  另一个方法info.get(“key”)

    Info[“key”] = value    key如果存在则修改值,如果不存在则添加一个

    删除一个键值对:del info[“key”] or info.pop(“key”) info.popitem()随机删除一个

    判断key是否在字典中:”key” in info  返回Bool类型

    Info.values()  打印所有的值

    Info.keys()打印所有的key

    Info.setdefault(“key”,value)  如果key存在,则不变,否则添加一个新的值

    Info.update(另一个字典)   批量更新或添加字典

    Info.items()  把字典转成列表

    Info.fromkeys([“”,””],defaultValue)   创建一个默认的字典,和info没有关系

            注意:这里defaultValue的引用是赋值给所有的key   即改变某个key的值,其他的也会变化

    字典循环:

            For I in info :

                   Print(i,info[i])

            另一个方法

            For k,v in info.items():

                   Print(k,v)

    第一个方法更高效

    8.其他琐碎知识点

    1.  type()

    查看某一变量的数据类型

    2.  两个**表示次方

    3.  判断是否为数字  isdigit()

    4. 高亮输出:

    5. 退出程序使用exit()方法

    三级列表练习题:

    # 张永
    #三级菜单程序
    
    menu = {
        "北京":{
            "海淀":["中电15所","中关村"],
            "朝阳":["国贸","奔驰"],
            "昌平":["老男孩","尚硅谷"]
        },
        "河北":{
            "石家庄":["石家庄学院","铁道大学"],
            "邯郸":["丛台公园","龙湖公园"],
            "衡水":["衡水中学","衡水湖"]
        },
        "山东":{
            "济南":["趵突泉","山东大学"],
            "聊城":["冠县","轴承"]
        }
    }
    exit_flag = False
    while not exit_flag:
        for i in menu:
            print(i)
        choose = input(">>>请选择:")
        if choose in menu:  #输入在字典中
            while True:
                for subMenu in menu[choose]:
                    print("	",subMenu)
                choose1 = input("	>>>请选择:")
                if choose1 in menu[choose]:
                    for th_menu in menu[choose][choose1]:
                        print("		",th_menu)
                    choose2 = input("		>>>请选择:")
                    if choose2 == "b":
                        continue
                    elif choose2 == "bb":
                        break
                elif choose1 == "b":
                    break
        else:
           print("所输入的省份不在列表中")
    

      

  • 相关阅读:
    ie不支持 event.stopPropagation 的解决方式
    jquery 获取 元素.text( ) 里面的值 需要进行去空格去换行符操作
    使用插件实现某元素展示特定行文字,超出显示...
    css文字超出显示省略号
    纯css实现各种三角形图案
    jQuery判断鼠标是否在某个元素内
    z-tree相关设置
    js提取字符串中的汉字
    扩展ie中不兼容的startsWith,endsWith方法
    获取浏览器URL携带过来的参数/获取url中"?"符后的字串
  • 原文地址:https://www.cnblogs.com/zhangyongJava/p/8512742.html
Copyright © 2020-2023  润新知