zoukankan      html  css  js  c++  java
  • python3基础01(常见语法基础汇总)

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-

    # 换行 续行 s[:i] + s[i:] 等于 s
    #转义 e 空 00 八进制 oyy 十六进制 xyy
    # 颜色控制 33 格式:33[显示方式;前景色;背景色;m正文 使用终端默认颜色:33[0m
    #unicode字符 用u或U表示 如u'test',原始字符 用r或R 如r'test ',转义字符直接显示,如换行 回车 ,表示字节 用b,如 b'test' 多行用连接

    # Numbers 数字型 不可变 整型 int (二进制:0b或0B 八进制:0o或0O 十六进制:0x或0X)、
    # 浮点型 float(尾数e解码或尾数E解码 1个符号位 52位尾数+11位解码) 高精度浮点数用Decimal()
    # 复数型 complex(ae+bj) ae表示实数 通过复数变量.real获得 bj表示虚数 通过复数变量.image获得
    # String 字符串型 '' "" 不可变
    # 将序列转成对应的类型:tuple(s) list(s) set(s) frozenset(str) dict(d)
    # 将整数转成字符:chr(x) unichr(x) 将字符转成整数:ord(str) 将对象转成字符串 str(x) repr(x)
    # bytes 字节型 bytes() 或 b'' 负责处理二进制,跟编码有关系 网络传输 图片 文件等
    # List 列表型 [] 将序列转成列表:list(seq) 可变 有序可重复 查找和插入慢,占用内存小
    # Tuple 元组型 () 将序列转成元组:tuple(seq) 指向不可变 有序
    # Sets 集合型 set() 无序不重复 可变
    # Dictionaries 字典型 {} 无序 键值对 键不重复 可变 dict.fromkeys(seq[, val]) 有序字典:collections.OrderedDict 查找和插入快,占用内存大
    # bool 布尔型 通过bool()判断 True False 为False:None、0、0.0、-0.0、空集合、空字符串、空列表、空元组、空字典 为True:-1 非零、非空
    # None 空类型
    # 布尔型进行算术运算会被转换为整形
    # 在混合运算中,简单类型的操作数会被转换为与他运算的复杂类型操作数的类型

    # or 左操作数布尔值为True,则返回左操作数,否则返回右操作数或其计算结果
    # and 左操作数布尔值为True,则返回右操作数,否则返回左操作数或其计算结果
    # 运算符优先级通过()来限制,,多个括号,最内层括号部分先执行,一般自左向右顺序结合


    # ascii 占1个字节8位 pyton默认编码 unicode 占2个字节 16位 utf-8 英文占1个字节 8位 中文占3个字节 24位
    # 无法显示为ascii的字节用 x##表示 中文经UTF-8编码占3个字节 英文占1个字节
    # 字符串类型 String 在内存中读写字符串 用StringIO 在内存中读写字节用 BytesIO
    # 在网络上传输 或磁盘中存放字符,需要将字符转换成字节 即 String->bytes 英文:编码操作 encode('ascii') 中文 encode('utf-8')
    # 从网络上传输 或磁盘中读取字符,需要将字节转换成字符 即 bytes->String 英文:解码操作 decode('ascii') 中文 decode('utf-8',errors='ignore')

    # 计算字符长度 len('test')
    # 计算字节长度 len(b'test')
    # 作用域的范围按如下方式搜索执行 L(本地) –> E(闭包) –> G(全局) –>B(内建)
    # 把变量从内存变成可存储或进行网络传输,则被认为是进行了序列化处理,序列化后,可存到磁盘 或通过网络传输到别的机器
    # 从变量内容从序列化的对象重新读到内存 成为反序列化

    # 将已安装的库导出到文件
    # pip freeze >pythonlib.txt

    # 从已有的库导入
    # pip install -r pythonlib.txt

    # 搭建python虚拟环境
    # pip install virtualenv
    #
    # where virtualenv
    #
    # mkdir 虚拟环境目录
    # virtualenv –p python.exe路径 –-no-site-packages 虚拟环境路径
    #
    # 进入Scripts,执行activate 启用虚拟环境 ,退出虚拟环境 deactivate

    #列表可以包含列表 元组 集合 字典
    #listb=[lista,tuplea,seta,dicta]

    #元组可以包含列表 元组 集合 字典
    #tupleb=(lista,tuplea,seta,dicta)

    #集合可以包含列表 元组 集合 字典
    #setb=(lista,tuplea,seta,dicta)

    #print(lista,tuplea,seta,dicta)

    #字典中的值可以包含列表 元组 集合 字典
    #dictb={1:lista,2:tuplea,3:seta,4:66,5:'dd',6:dicta}

    #dictc={'lista':1,'tuplea':2,'seta':3,'dicta':4}

    # 字典通过deepcopy()复制生成新的字典对象,对新字典对象改动,不影响原字典对象

    #元组、集合、字典->列表
    #la=list(dicta)
    # 对列表进行 + * sorted() 操作会生成新列表

    #列表、集合、字典->元组
    #la=tuple(dicta)


    #列表、元组、字典->集合
    #la=set(dicta)
    # 集合1-=集合2,从集合1中删除与集合2中相同的元素
    # set集合与frozenset集合,可以进行比较操作 判断子集 严格 < 非严格:<= 判断超集 严格:> 非严格>=
    # 并& 交集操作 intersection(),联合|:并集操作 union()
    # 差补-:补集操作 difference() 结果的元素符合左边的集合,对称差分^:交集取反操作 symmetric_difference()
    # 差补更新-= 并集更新&= 联合更新|= 对称差分更新^= 为对应的集合更新操作
    # 相同类型的集合操作,还是相同类型,不同类型的集合操作,结果为左侧集合类型
    # isdisjoint() 用于判断集合1与集合2是否存在相同元素

    # 遍历多个序列时,可将序列打包到zip()中
    # sotred()会生成新的序列
    # 身份运算符 is is not 用于比较2个对象是否相等,id() 相等则为相同对象,== 用于比较2个对象的值是否相等
    # 成员运算符 in not in 判断元素是否存在某个序列中

    #类中定义了 __call__()方法后,可通过 对象() 或者 类()() 访问该call方法

    #方法前加@staticmethod表示为静态方法 @classmethod表示为类方法 ,建议用类.方法名访问

    #@property装饰器可以把类的方法伪装成属性调用的方式 或 property()函数

    #__dict__ 列出类或对象中的所有成员的字典 dir() 返回一个模块里定义的所有模块,变量和函数的列表

    #用__slots__限制实例的变量 __slots__ = ("name", "age") 这样类只能有 name age实例变量

    #函数内部调用 locals(),返回的是所有能在该函数里访问的命名,是个字典

    #如果在函数内部调用 globals(),返回的是所有在该函数里能访问的全局名字,是个字典

    #反射的应用 func = getattr(commons,inp) 通过方式调用commons模块中与inp同名的函数

    #动态导入模块
    # obj = __import__("包." + 模块1, fromlist=True)
    # obj = __import__('包.模块1',fromlist = ('模块1',))
    # 根据modules字符串导入同名的模块 到执行该python脚本中

    #断言可以通过 python -O 关闭

    #调试分析代码的方式 print assert loggin pdb 4种

    # 设置tab为4个空格 对于不是一目了然的代码,需要结尾添加注释 一行较长的代码或文本,可通过()包含起来
    # print 通过在sep中设置,使多个值之间插入字符串 通过在end中设置,使多个后面的值追加字符串 一次打印输出多个用,号分隔 print(a,b,c)
    # 通过help() 进入来查看关键字信息界面

    # 正数的符号位为0 负数的符号位为1
    # 原码 整数的原码由其二进制转换而来
    # 反码 正数的反码与原码相同 负数的原码为其原码的数值部分按位取反、符号位保持不变
    # 补码 正数的补码与原码相同 负数的原码为其原码的数值部分按位取反、再加1、符号位保持不变


    #json与python转换
    # json.dumps demjson.encode() 将Python对象编码成JSON字符串
    # json.loads demjson.decode() 将已编码的JSON字符串解码为Python对象

    #json与python对应关系
    # objcet dict
    # array list
    # string unicode
    # number(int) int,long
    # number(real) float
    # true True
    # false False
    # null None

    # 位置参数:传递值时,按顺序接收,调用函数时,指定的参数名与位置参数一致
    # 默认参数:默认参数在位置参数后面,当有多个默认参数时,更常用的默认参数尽量放在默认参数区域的前面
    #
    # 动态参数:可变参数(*args) 命名参数(**kwargs)、关键字命名参数,需放在所有位置参数、默认参数后面
    #
    # 可变参数(*args):定义函数时:入参数被封装为一个元组,如果参数为列表,则将整个列表当作参数传入 调用函数时:被当作元组或列表
    #
    # 命名参数(**kwargs):定义函数时:入参数被封装为一个字典 调用函数时:被当作字典
    #
    # 关键字参数:可以将默认参数、位置参数 与 关键字参数分割开来,通过加 * 号控制,如:(位置参数,默认参数,*,关键字参数),调用关键字参数,必须指定参数名,或者传入关键字参数的缺省值

    # 类:具有相似特征和行为对象的集合,即同一类型的事物,对某类事物的抽象描述,描述多个对象的共同特征
    # 对象:现实中该类事物的一个个体,用于描述现实中的个体
    # 对象是根据类创建的,一个类可对应多个对象,一个对象只能对应一个类
    # 属性:为描述事物的特征,方法:为描述类的行为特征
    # 属性包括:类属性(在类的内部 方法的外部),通过类和对象访问,只能通过类修改,通过类属性或在类方法中修改
    # 对象属性:描述对象特征的数据属性,在类定义方法代码里添加或在调用实例代码里添加,对象属性只能被对象调用,不能被类调用,对象属性为类对象所共有
    # 同名的对象属性会覆盖类属性,对象方法可以被对象调用 类要调用对象方法,需要传入类或对象做为参数,类方法、静态方法,可以被类、对象访问
  • 相关阅读:
    linux sed命令详解
    SQL注入基础知识
    DC-7
    DC-6
    DC-5
    DC-4
    DC-3
    DC-2
    pentestlabs
    任意文件读取和下载
  • 原文地址:https://www.cnblogs.com/NiceTime/p/10078882.html
Copyright © 2011-2022 走看看