Python

作者: Rishinn | 来源:发表于2018-07-31 01:21 被阅读0次

    # 一 基本知识

    ## 1.1 python介绍

    1.解释型语言,不需要编译,类似爬php和ruby

    2.动态类型语言,声明变量不需要说明类型

    3.面向对象

    4.编写快,运行慢,但是可以允许加入给予c语言的扩展

    5.GIL

    6.import this python之禅

    ## 1.2 编码

    ### 1.2.1字符和字节

    字符:人类能够识别的符号,字节:计算机能够识别的符号

    编码:字符转换为字节,解码:字节转换为字符

    Unicode是字符串,ASCII,utf-8,GBK,等字符编码表示的是字节串,字符以字节的形式保存在文件中

    python2中:

    a=“hello,中国”      len(a)=6+2*2=10

    a=u"hello,中国"    len(a)=6+2=8

    ### 1.2.2编码和解码

    unicode字符编码,也是字符和数字和映射,数字指的是十六进制的数字,成为代码点,unicode字符串是一个代码点序列,代码点取值为0~0x10FFF(0~1114111),代码点在存储中需要表示为一组字节(0~255),将Unicode字符串转为为字节序列的过程成为编码

    ### 1.2.3默认编码

    ​ 如下图:

    ![1](F:\typora\python.assets/1.png)

    **如果无法通过默认的字符编码进行解码时,就会出现解码错误**

    import sys

    sys.getdefaultencoding()    #查看默认的字符编码方式(用于解码,py2:ascii;py3:utf-8)

    ### 1.2.4Python2和Python3

    python3

    `class bytes(object)`

    `class str(object)`

    python2,执行help(str|bytes)都是str类的定义,str就是字节串,unicode才是字符串

    `class basestring(object)`

    `class str(basestring)`

    `class unicode(basestring)`

    编码转换

    `utf_8_a = '我爱中国'`

    `gbk_a = utf_8_a.encode('gbk')`

    `print(gbk_a.decode('gbk'))`

    ### 1.2.5常见的编码

    1.2.1 ASCII码[anseke]

    单字节编码,处理英文字符(GBK处理中文字符)

    1.2.2 Unicode

    统一编码,处理各国字符

    1.2.3 utf-8

    Unicode的一种实现方式,是变长编码,Unicode占用空间多,提升存储和传输性能

    s

    ## 1.3 pip

    # 二 基本数据类型

    ## 2.0 I/O

    输入:num=int(input("请输入一个数字:"))

    输出:格式化:http://www.runoob.com/w3cnote/python3-print-func-b.html

    Python :string[num]& data  num表宽度,右对齐

    %s  字符串

    %d  十进制整数

    %x  十六进制整数

    %o  八进制整数

    %f  十进制浮点数

    %e  科学计数法表示的浮点数

    %g  十进制或者科学计数法表示的浮点数

    %%  %

    a=1,b="cat"

    my pet %s weigh %d pounds % (a,b)

    新式方法:

    n=42,f=7.03,s="abcdefg"

    ## 2.1数据类型

    type("str")和isinstance("a",str)

    整型:python2中int为32位,long位64位;python3中,int类型没有限制,类似java中的BigInteger

    浮点数:float

    布尔类型:1True  0False(默认)

    字符串:str

    强制类型转换:int() float() str()

    进制:0b 0o 0x

    ## 2.2 字符串

    创建:单引号或者双引号

    +拼接

    *复制      s='na' *4    nananana

    原始字符串:因为\n表示转义字符,所以如果字符本身含有\n,可能识别为换行,这里可以使用\进行转义

    如\\\n和\"表示\n和“,同时也可以使用原始字符串str=r'\n

    转义:\t:制表符

    三重引号字符串可打印输入格式:#行被保留

    print('''

    1

    12

    123

    '''

    索引:第一个是0,最后一个是-1,注意索引是只有一个参数

    分片slice:[start:end :step]start和end都是当前序号和第一或最后一个相比的偏移量)

    start和end不写就代表第一个和最后一个,但是在索引中,-1代表最后一个

    [:]=start到结尾  [:end]开头到end-1

    s='123456789' s[::2]=13579 s[-3::2]=79 s[-1::-1]=987654321  start和end可以小于0或者大于-1

    len():获取长度

    spilt()

    join()

    startwith()

    endwith()

    find()

    rfind()

    count()

    strip()

    replease()

    ## 2.3 操作符

    +-*/  // % **

    < == != >= <= in

    and or not

    a= x if condition else y

    ## 2.4逻辑

    ### 2.4.1 真和假

    非零非空为真

    ### 2.4.2 if while和for

    1、if

    if condition:

    ​ statement

    elif condition:

    ​ statement

    else:

    ​ statement

    2、while

    while condition:

    ​ statement

    else:

    3、for

    for x int iterator:          #str,tuple,list,dict,set,字典需要使用keys(),values()和items()         

    ​ statement

    else:

    它允许在数据结构长度未知和具体实现未知的情况下遍历整个 数据结构,并且支持迭代快速读写中的数据,以及允许不能一次读入计算机内存的数据流 的处理。   

    conitnue中断本次循环

    break中断整个循环

    ## 2.5 Iterator

    ### 2.5.1 列表

    创建:[]或者list()    a=[1,2] b=list(),b=list("cat") #b=["c","a","t"]

    list()可以将其他数据类型转换位列表:list("cat")  list(tuple)

    [offset]: 索引,第一个是0,最后一个-1

    插入:append()和insert(index,value)或者使用一个列表扩展另一个列表extend()或者+=

    删除:pop() pop(index) del(index)  remove(value)    pop()默认参数-1,即弹最后一个元素

    获取:a[index] 

    分片:a[start:end :step]start和end为偏移,步长为step,得到的是子序列

    个数:len(a)

    位置:index(),a.index(x),列表a中第一个值为x的元素位置

    存在:in      if a in list:

    次数:count()    特定值出现的次数

    转换为字符串:list=["a","b","c"]    "x".join(list)就是“axbxcx”

    排序:sort()改变列表内容,sorted()不改变,默认升序,加参数reverse=true为降序

    复制:= copy() list(列表)

    ### 2.5.2 元组

    创建:

    ():tuple=()

    逗号:tup="bana"      tup="bana","app","org",定义元组时可以加个()

    赋值:a,b,c=tup

    特点:占用空间小,值不会被改变(可以作为字典的键值),命名元组可代替对象,函数的参数是元组形式传递,可以理解为常量列表

    ### 2.5.3 字典

    python中字典又称为关系数组,哈希表/图,顺序不重要,依靠键值获取元素,键是python中任意不可变类型:bool,int,float,tuple,string,并且不能相同

    创建:{} ,dic1={1:"a",2:"b",3:"c"} 

    lol=(["a","b"],["c","d"])      a=dict(lol)    #{“a”:"b","c":"d"}

    上述方法可以是双值子序列(list/tuple)的序列,也可是双字符的字符串组成的序列,使用dict函数转换为字典

    索引:[key] ,a[key]可以添加或者修改,可用in先判存,或者使用get

    合并:update(),如果键重复,新值取代旧值,参数是另一个字典

    删除:del(),删除键值对,参数是键

    清空:clear()

    存在:in,参数是键

    获取:get(value,ret),如果不存在,返回ret

    keys():py2中返回键列表,py3中返回dict_keys(),

    ```

    dic1={1:"a",2:"b",3:"c"}

    print(dic1[1])

    dic1[4]="d"

    del dic1[1]

    print(dic1)

    #dic1.clear()

    if 2 in dic1:

        print(dic1)

        print(dic1.keys())

        print(dic1.values())

        print(dic1.items())

    ```

    打印结果如下

    a

    {2: 'b', 3: 'c', 4: 'd'}

    {2: 'b', 3: 'c', 4: 'd'}

    dict_keys([2, 3, 4])

    dict_values(['b', 'c', 'd'])

    dict_items([(2, 'b'), (3, 'c'), (4, 'd')])

    ### 2.5.4 集合

    # 三.函数

    ## 3.1 参数

    ### 3.1.1 形参和实参

    ### 3.1.2 关键字参数

    传入实参是指定形参的变量名

    ### 3.1.3 默认参数

    ### 3.1.4 可变参数

    def test(*arg)        使用列表arg[]收集参数

    ## 3.2 返回值

    直接return 多个值,返回的是元组

    ## 3.3 作用域

    global 函数内使用global声明变量时,代表该变量是全局变量

    ## 3.4 闭包closure

    ## 3.5 lambda表达式

    f=lambda x,y:f(x,y)

    f(x,y)

    ## 3.6 filter()和map()

    help(filter)---->filter(fun or none,iterator)

    使用iterator中每个值计算fun函数的值,并返回true的值,若为none,直接返回iterator中true的值

    map(fun,iterator)

    传入iterator中的每个值计算fun,构成新的序列

    ## 3.7 递归

    # 4 文件

    ## 4.1 基本操作

    打开:open(file,mode='r',......)r只读,w重新写入,a继续写入,+可读写

    关闭:close()

    # 5. 异常

    # 6. 类

    # 7. 模块

    ## 7.1命名空间

    import 模块名

    from 模块名 import 函数名(*)

    import 模块名 as 新名字

    # N. BIF内置函数

    N.1 自然数序列range

    自然数是从0到正无穷

    range(start,stop,step)          [start,stop)左开右闭

    同时需要注意字符串分片是a[start​: end:​ step]

    start和stop都是偏移(某个数减去第一个数的索引(即0)就是偏移)

    相关文章

      网友评论

          本文标题:Python

          本文链接:https://www.haomeiwen.com/subject/bbtcvftx.html