Python入门到精通自学笔记4

1、内置参数讲解

    all() any() 

    建议自己学习dir or type学习

    Python一切皆对象

pow(2,8)次方

round(1.234,2)四舍五入

zip拉链

    a=[1,2,3,4]

    b=[a,b,c,d]

    zip(a,b)

        (1,a)

        (2,b)

        (3,c)

        (4,d)

2、Json序列化,不同语言数据交互

    序列化与反序列化

    可以多次dumps

    import json

    info={

        'name':colby,

        'age':20

    }

    #序列化

    f=open("test.txt",'w')

    f.write(json.dumps(info)

    #反序列化

    f=open("test.txt",'r')

    data=json.loads(f.read())

3、pickle同json,能处理复杂的数据类型

4、程序目录规范

    Foo

        bin/

            Foo.sh

        foo

            *.py各种核心代码

        conf/

            config.ini

        docs/

            txt文档

        setup.py

        readme.txt

5、

常用模块的学习

模块的本质实现一块功能

包:本质就是一个目录,必须带有一个叫__init__.py的文件

导入模块:

import xx

    本质将xx代码执行了一遍,并且赋值给变量

    通过前缀调用变量和方法,运行xx.log()

from xx import logger

    本质将xx中某一部分的代码执行了一遍

    运行log()即可,无需加上模块前缀名

from xx import logger1,logger2 多个导入逗号分隔

from xx import logger as log

from xx import * 慎用,可能覆盖当前函数或者方法

导入包:

    本质是导入包下面的__init_.py文件

模块分类

    标准库

    开源模块

    自定义模块

    

标准库:

    datetime与time

        时间有三种格式:时间戳、元组,格式化的字符串

        time与datetime模块

        time.time()#时间戳

        time.localtime()#元组

        time.timezone()#时区

        time.gmtime()

            #传入秒返回,不传返回UTC时间

        time.strftime('%Y-%m-%d %H:%M:%S','')

        datetime是基于time的高级封装

            datetime.datetime.now()+datetime.timedelta(3)当前时间加3天

    random()

        chr()#将数字转换成字母

    os模块

    sys模块

        sys.argv:读取脚本后面的参数

        python test.py 1 2 3 4

            sys.argv获取后面的参数

        

    shutil模块

        高级的文件、文件夹、压缩包处理模块

    xml模块

        交换数据的标签语言

    PyYAML

        做配置文件的,有自己的语法,简单

    ConfigParser模块

        用于配置文件

        Mysql配置文件就用的ConfigParser

    hashlib模块

        加密算法,md5都是基于hash的

        md5()

        sha1()

        sha256()

    re正则模块

        match()

        search()

        findall()

        '''

        . 匹配除了换行之外的任意个字符

        + 1次或者多次

        ? 匹配前面的字符0次或者1次

        * 0次或者多次

        match()从字符串开头开始匹配

        search()从整个文本匹配,如果有多个,只匹配显示第一个

        findall()没有group()方法

        '\'左斜杠转义

        '''

        import re

        res=re.match('^colby\d+','colby123chenlun')

        print(res.group())

        #动态匹配省份日期格式

        res=re.search("(?P<province>[0-9]{4})(?P<city>[0-9]{2})(?P<birthday>[0-9]{8})","511303199704200240").groupdict()

        print(res)

        '''

        re.split()用正则分割字符串

        re.sub()将正则匹配上的字符用指定字符串替换掉

        '''

        print('split的用法:',re.split('[0-9]+','aa22bb55cc66'))

        print('sub的用法:',re.sub('[0-9]+','|','aa22bb55cc66'))

猜你喜欢

转载自blog.csdn.net/zxcv321zxcv/article/details/112972362