python基本语法(一)

 

 

Python 官网:https://www.python.org/
Python文档下载地址:https://www.python.org/doc/

Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言
Python 是交互式语言: 这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码
Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术

cmd命令:

查看python版本:python -v
执行python脚本:python python.py
环境变量中添加Python目录:path=%path%;C:\Python     注意: C:\Python 是Python的安装目录
查看python安装路径:where python
查看帮助: python -h
退出python命令行:exit(), quit(), ctrl+z enter

基本语法:

单行注释:#
多行注释:'''多行注释''', """多行注释"""
变量命名规则:大小写字母、数字、下划线和中文等字符及组合;大小写敏感、首字符不能是数字、不与保留字相同
保留字:python语音有35个保留字(关键字),in:判断一个元素是否在列表中
        ['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
行与缩进: 使用缩进来表示代码块,不需要使用大括号 {},一个代码块的语句必须包含相同的缩进空格数
多行语句: 使用反斜杠(\)来实现多行语句,在 [], {}, 或 () 中的多行语句,不需要使用反斜杠(\)
反斜杠:可以用来转义,使用r可以让反斜杠不发生转义; 如 r"this is a line with \n" 则\n会显示,并不是换行
    \(在行尾时)    续行符
    \\    反斜杠符号
    \'    单引号
    \"    双引号
    \a    响铃
    \b    退格(Backspace)
    \000    空
    \n    换行
    \v    纵向制表符
    \t    横向制表符
    \r    回车
    \f    换页


基本数据类型:

变量:
    Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建
    在 python 中,类型属于对象,变量是没有类型的,  我们所说的"类型"是变量所指的内存中对象的类型, a=[1,2,3]、a="Runoob"
        [1,2,3] 是 List 类型,"Runoob" 是 String 类型,而变量 a 是没有类型
        它是一个对象的引用(一个指针),可以是指向 List 类型对象,也可以是指向 String 类型对象
    多个变量赋值: a = b = c = 1; a, b, c = 1, 2, "var"    

标准数据类型: Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Set(集合)、Dictionary(字典)
    不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组)
        不可变类型:变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变a的值,相当于新生成了a
        python 函数的参数传递: 不可变类型:类似 c++ 的值传递,如 整数、字符串、元组。如fun(a),传递的只是a的值,没有影响a对象本身。比如在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身
    可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)
        可变类型:变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了
        python 函数的参数传递: 可变类型:类似 c++ 的引用传递,如 列表,字典。如 fun(la),则是将 la 真正的传过去,修改后fun外部的la也会受影响

    Number 数字: int、float、bool、complex(复数), 在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long
        注意:在 Python2 中是没有布尔型的,它用数字0表示False,用1表示True。到Python3中,把True和 False定义成关键字了,但它们的值还是1和0,它们可以和数字相加
        复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型
        内置的 type() 函数可以用来查询变量所指的对象类型,如:print(type(var)==str)
        运算符:除法:/; 取整://; 取余:%; 乘方:**; 加法赋值运算符:+=
        在混合计算时,Python会把整型转换成为浮点数
        Pyhton3 已不支持 < > 运算符,可以使用 != 代替
        在整数除法中,除法 / 总是返回一个浮点数, 如:15/3=5.0

    String "字符串": 用单引号、双引号、三引号表示,使用[]获取字符串中一个或多个字符, 使用反斜杠 \ 转义特殊字符
        从左边第1个字符正向递增,下标从0开始
        从右边第1个字符反向递减,下标从-1开始
        索引Str[N]:Str[-1]
        切片Str[N:M]:Str[1:3]、Str[0:-2],获取的字符不包含第M个字符
        切片步长Str[N:M:X]:X截取的步长,
            Str[1:5:2]: 表示在索引1到索引5的位置并设置为步长为 2(间隔一个位置)来截取字符串, str="abcdefg",截取:bd
            Str[1:5:-1]: -1 表示逆向,翻转字符串, str="abcdefg",逆向截取:edcb
        print(str * 2): 输出字符串两次,星号 * 表示复制当前字符串
        print (str + "TEST") : 连接字符串
        Python 字符串不能被改变,向一个索引位置赋值,如word[0] = 'm'会导致错误
        格式字符串: %,  %s: 格式化字符串 ; %d    : 格式化整数
        Unicode 字符串: 在Python2中,普通字符串是以8位ASCII码进行存储的,而Unicode字符串则存储为16位unicode字符串,在Python3中,所有的字符串都是Unicode字符串
        Python 的字符串内建函数: ...

    Tuple(元组):元组写在小括号 () 里,元素之间用逗号隔开,用法同字符串,字符串可以看作一种特殊的元组
        tuple的元素不可改变,但它可以包含可变的对象,比如list列表
        特殊元组:
            tup1 = ()    # 空元组
            tup2 = (20,) # 一个元素,需要在元素后添加逗号,不加逗号,类型为整型
        元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组:del tup
        在输入时可能有或没有括号: t = 12345, 54321, 'hello!'
        元组内置函数:    
            len(tuple)        计算元组元素个数
            max(tuple)        返回元组中元素最大值。
            min(tuple)        返回元组中元素最小值
            tuple(iterable)    将可迭代系列转换为元组

    List [列表]: 列表是有序的对象集合,列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套);列表是写在方括号 [] 之间、用逗号分隔开的元素列表
        列表同样可以被索引和截取: 变量[头下标:尾下标], 用法同字符串
        序列都可以进行的操作包括索引,切片,加,乘,检查成员
        print (list * 2): 输出两次列表
        print (list_a + list_b): 连接列表, 重新组合新列表
        列表中的元素是可以改变的:如:给第一个元素重新赋值:a[0] = 9, 将对应的元素值设置为空[]:a[2:5] = [], 给对应的切片元素重新赋值:a[2:5] = [13, 14, 15]
        del list[N]: 删除列表中下标为N的元素
        嵌套列表: x=[['a', 'b', 'c'], [1, 2, 3]], x[0]=['a', 'b', 'c'], x[0][1]='b'
        列表函数:
                1    len(list)    列表元素个数
                2    max(list)    返回列表元素最大值
                3    min(list)    返回列表元素最小值
                4    list(seq)    将元组转换为列表
        列表方法:
                1    list.append(obj):         在列表末尾添加新的对象,相当于 a[len(a):] = [x]
                2    list.count(obj)            统计某个元素在列表中出现的次数,相当于 a[len(a):] = L
                3    list.extend(seq)        在列表末尾一次性追加另一个列表中的多个值(用新列表扩展原来的列表)
                4    list.index(obj)            从列表中找出某个值第一个匹配项的索引位置
                5    list.insert(index, obj)    将对象插入列表, 在指定位置插入一个元素
                6    list.pop([index=-1])    移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
                7    list.remove(obj)        移除列表中某个值的第一个匹配项
                8    list.reverse()            倒排列表中的元素
                9    list.sort( key=None, reverse=False)        对原列表进行排序
                10    list.clear()            清空列表, 等于del a[:]
                11    list.copy()                复制列表,等于a[:]
                12    list.popleft()             移除列表最左边的元素

    Set {集合}: 集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员, 是一个无序的不重复元素序列
        使用大括号 { } 或者 set() 函数创建集合
        注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典,parame = {value01,value02,...}或parame = set(value)
        集合中重复元素,输出集合时,前面重复的元素被自动去掉
        print(a - b)     # a 和 b 的差集, 集合a中包含而集合b中不包含的元素
        print(a | b)     # a 和 b 的并集, 集合a或b中包含的所有元素
        print(a & b)     # a 和 b 的交集, 集合a和b中都包含了的元素
        print(a ^ b)     # a 和 b 中不同时存在的元素
        集合函数:
            s.add( x )        将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作, x 可以有多个,用逗号分开
            s.update( x )    也可以添加元素,且参数可以是列表,元组,字典等, x 可以有多个,用逗号分开
            s.remove( x )    将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误
            s.discard( x )    方法也是移除集合中的元素,且如果元素不存在,不会发生错误
            s.pop()         随机删除集合中的一个元素, pop方法会对集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除
            len(s)            计算集合 s 元素个数
            s.clear()        清空集合 s
            x in s             判断元素 x 是否在集合 s 中,存在返回 True,不存在返回 False
            isdisjoint()    判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False
            copy()            拷贝一个集合

    Dictionary {字典}: 字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合
        字典当中的元素是通过键来存取的,键(key)必须是唯一的,可以是字符串,数字或元组, 不能是列表
        字典取值: dict{'key':'value'},dict['key']=value
        创建空字典: dict = {}
        print (tinydict.keys())   # 输出所有键
        print (tinydict.values()) # 输出所有值
        构造函数 dict() 可以直接从键值对序列中构建字典
            dict([('Runoob', 1), ('Google', 2), ('Taobao', 3)])=>{'Runoob': 1, 'Google': 2, 'Taobao': 3}
            {x: x**2 for x in (2, 4, 6)}=>{2: 4, 4: 16, 6: 36}
            dict(Runoob=1, Google=2, Taobao=3)=>{'Runoob': 1, 'Google': 2, 'Taobao': 3}
        能删单一的元素也能清空字典:
            del dict['Name'] # 删除键 'Name'
            dict.clear()     # 清空字典
            del dict         # 删除字典
        如果用字典里没有的键访问数据,会输出错误
        创建时如果同一个键被赋值两次,则输出后一个值
        字典内置函数:
            len(dict)        计算字典元素个数,即键的总数
            str(dict)        输出字典,以可打印的字符串表示
            type(variable)    返回输入的变量类型,如果变量是字典就返回字典类型
        字典内置函数:
            1    radiansdict.clear()                    删除字典内所有元素
            2    radiansdict.copy()                    返回一个字典的浅复制
            3    radiansdict.fromkeys()                创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
            4    radiansdict.get(key, default=None)    返回指定键的值,如果值不在字典中返回default值
            5    key in dict                         如果键在字典dict里返回true,否则返回false
            6    radiansdict.items()                    以列表返回可遍历的(键, 值) 元组数组
            7    radiansdict.keys()                    返回一个迭代器,可以使用 list() 来转换为列表
            8    radiansdict.setdefault(key, default=None)    和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
            9    radiansdict.update(dict2)            把字典dict2的键/值对更新到dict里
            10    radiansdict.values()                返回一个迭代器,可以使用 list() 来转换为列表
            11    pop(key[,default])                    删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
            12    popitem()                            随机返回并删除字典中的最后一对键和值。

数据类型转换函数:
    int(x [,base]): 将x转换为一个整数
    float(x): 将x转换到一个浮点数
    complex(real [,imag]): 创建一个复数
    str(x): 将对象 x 转换为字符串
    repr(x): 将对象 x 转换为表达式字符串
    eval(str): 用来计算在字符串中的有效Python表达式,并返回一个对象
    tuple(s): 将序列 s 转换为一个元组
    list(s): 将序列 s 转换为一个列表
    set(s): 转换为可变集合
    dict(d): 创建一个字典。d 必须是一个 (key, value)元组序列。
    frozenset(s): 转换为不可变集合
    chr(x): 将一个整数转换为一个字符
    ord(x): 将一个字符转换为它的整数值
    hex(x): 将一个整数转换为一个十六进制字符串
    oct(x): 将一个整数转换为一个八进制字符串

数学函数:
    abs(x)    返回数字的绝对值,如abs(-10) 返回 10
    ceil(x)    返回数字的上入整数,如math.ceil(4.1) 返回 5
    floor(x)    返回数字的下舍整数,如math.floor(4.9)返回 4
    cmp(x, y)如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。 Python 3 已废弃,使用 (x>y)-(x< y) 替换
    exp(x)    返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045
    fabs(x)    返回数字的绝对值,如math.fabs(-10) 返回10.0
    max(x1, x2,...)    返回给定参数的最大值,参数可以为序列
    min(x1, x2,...)    返回给定参数的最小值,参数可以为序列
    modf(x)    返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示
    pow(x, y)    x**y 运算后的值
    round(x [,n])    返回浮点数 x 的四舍五入值,如给出 n 值,则代表舍入到小数点后的位数

随机数函数:
    choice(seq)    从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。
    randrange ([start,] stop [,step])    从指定范围内,按指定基数递增的集合中获取一个随机数,基数默认值为 1
    random()    随机生成下一个实数,它在[0,1)范围内。
    seed([x])    改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。
    shuffle(lst)    将序列的所有元素随机排序
    uniform(x, y)    随机生成下一个实数,它在[x,y]范围内

位运算符:
    &    按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0;        (a & b) 输出结果 12 ,二进制解释: 0000 1100
    |    按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1;        (a | b) 输出结果 61 ,二进制解释: 0011 1101
    ^    按位异或运算符:当两对应的二进位相异时,结果为1;            (a ^ b) 输出结果 49 ,二进制解释: 0011 0001
    ~    按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1,~x 类似于 -x-1;        (~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。
    <<    左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0;         a << 2 输出结果 240 ,二进制解释: 1111 0000
    >>    右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数;        a >> 2 输出结果 15 ,二进制解释: 0000 1111

身份运算符:
    is    是判断两个标识符是不是引用自一个对象    x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
    is not    是判断两个标识符是不是引用自不同对象    x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False
    is 与 == 区别:is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。

 

 

 

 

 

 

 

posted @ 2020-04-12 22:46  cty136  阅读(200)  评论(0编辑  收藏  举报