美文网首页
python关键字和内建结构, 数据类型

python关键字和内建结构, 数据类型

作者: LittleTrue | 来源:发表于2018-10-04 11:31 被阅读0次

    部分特殊关键字记录:

    • as用于类型转换

    • assert 声明其布尔值必须为真的判定,如果发生异常就说明表达示为假。可以理解assert断言语句为raise-if-not,用来测试表示式。

    assert 2+2==2*2
    assert len(['my boy',12])<10
    
    • del 删除变量或序列的值
    • elif 条件语句,与 if、else 结合使用,相当于 else if
    • except 包含捕获异常后的操作代码块,与 try、finally 结合使用,相当于catch
    • from 用于导入模块,与 import 结合使用
    • in 判断变量是否在序列中, 判断的主体可以是字符串, 也可以是列表等可迭代对象
    s = "abc 123"
    ret = "ab" in s
    print (ret)
    
    • is 判断变量是否为某个类的实例
    • lambdalambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
    f=lambda x,y,z:X+y+x 
    //lambda赋给一个变量后,通过变量调用
    f(1,2,3)
    
    • pass 空的类、方法或函数的占位符pass是空语句,是为了保持程序结构的完整性,比如空方法用其站位不报错。
    • global和nonlocal

    python引用变量的顺序: 当前作用域局部变量->外层作用域变量->当前模块中的全局变量->python内置变量 。

    global关键字用来在函数或其他局部作用域中使用全局变量。但是如果不修改全局变量也可以不使用global关键字。
    nonlocal关键字用来在函数或其他作用域中使用外层(非全局)变量。

    • with 简化 Python 的语句 相当php中的@
      使用with后不管with中的代码出现什么错误,都会进行对当前对象进行清理工作。
      有一些任务,可能事先需要设置,事后做清理工作。对于这种场景,Python的with语句提供了一种非常方便的处理方式。一个很好的例子是文件处理,你需要获取一个文件句柄,从文件中读取数据,然后关闭文件句柄。
    • raise 异常抛出操作
    try:
        raise FError("自定义异常")
    except FError as e:
        print(e)
    

    部分数据类型相关说明

    整型 (int):Python3中的所有整数都表示为长整数。 因此,长整数没有单独的数字类型。

    数字型变量 之间可以直接计算
    在 Python 中,两个数字型变量是可以直接进行 算数运算的
    如果变量是 bool 型,在计算时
    True 对应的数字是 1
    False 对应的数字是 0

    字符串变量 之间使用 + 拼接字符串
    字符串变量 可以和 整数 使用 * 重复拼接相同的字符串
    数字型变量 和 字符串 之间 不能进行其他计算,需要先进行转换。


    一、函数调用

    函数调用-关键字(key,vlaue)参数:
    图片.png

    写成如图所示的形式, 参数顺序可以颠倒,并且参数明确。

    函数调用-收集参数:
    图片.png

    写成如图所示的形式, 参数可以不限数量传入, 灵活。

    • 需要注意这里约定俗成的参数名是arg
    • 收集参数与其他参数混用时, 其他调用参数需要再前面。
    • 收集参数装包和解包: 传入一个 数组后,需要使用 * 号进行解包

    二、列表 list:

    集合列表的分片操作:
    图片.png

    分片操作可以截取列表中指定 下标1:下标2 的列表元素作为一个新的列表。

    列表推导式
    • 样式1:
      变量L=[item或item表达式 for item in 列表/集合]
      每循环一次就调用item或item表达式来填充列表L
    • 样式2:
      变量L=[item或item表达式 for item in 列表/集合 if 表达式 或 in 表达式 ]
      if 限制当地item满足条件才调用item或item表达式
    生成器推导式

    样式和列表推导式区别仅仅是[] 换成()
    注意: 列表推导式一经声明即运行并占用其所需的内存, 而生成器只有你需要的时候它才会求值, 这也是和列表解析式的区别,

    列表操作函数
    • max()
    • min()
    • len()
    • list.insert();
    • list.remove();
    • list.clear(); 地址不变, 数组情况。
      如果清空列表使用 list = list(); list = []; 那么原list的数据还存在内存等待清除, 只是存储它的地址的变量list指向了其他的空白内容的地址。

    三、元组-tuple

    元组可以看成一个不可更改的list
    除增删外, list具有的一些操作,比如索引,分片,序列相加,相乘,成员资格操作等,一模一样。

    元组创建

    t = (1,2);
    注意, 当创建一个值的元组的时候, 要在括号内写成 (item, )形式。
    t= 1,2
    t= tuple(list) 转化一个已有list创建元组

    元组操作函数
    • max()
    • min()
    • len()
    • count() 计算指定数据在元组中出现次数

    三、集合-set

    • 集合是高中数学中的一个概念
    • 一堆确定的无序的唯一的数据,集合中每一个数据成为一个元素
    • 集合具有唯一性
    • 集合内部只能放可HASH的数据,如基本数据, 元组
    集合创建和基本函数

    s = set() //注意使用s = {}会定义成dict类型, 只有{}内包含了具体数据并且不是K-V形式解释器才不会识别成字典
    s = set(list)转化一个已有list创建集合
    len,max,min,add,clear与list保持一致
    --remove和discard区别:
    remove移除不存在的值会报错。

    集合使用和集合函数

    自动过滤创建时录入的重复函数
    集合可以仿造列表写集合推导式(二种样式),四种结构中只有元组没有推导式。

    • 返回交集 intersection
    • 返回并集 union
    • 返回差集 difference
    • 判断是否子集 issubset
    冰冻集合

    冰冻集合就是不可以修改的集合, 冰冻集合可以存入其他集合。
    fs = frozenset()


    四、字典 -dict

    字典是一种组合数据,没有顺序的组合数据,数据以键值对形式出现
    ·字典是序列类型,但是是无序序列,所以没有分片和索引·字集中的数据每个都有键值对组成,即k/对·key.必须是可哈希的值,比如int,string,float,tuple,但是,ist.set.dict不行

    字典的创建

    d = {};
    d = { "k1": 1, "k2":2} //由于传入的是k-v形式, 所以会识别字典而不是集合
    d = dict({ "k1": 1, "k2":2})
    clear() len() max min()
    keys() 返回字典键值对组成的列表 ---dict_values类型: 列表
    values() 返回字典键值对组成的列表 --dict_keys类型: 列表
    items() 返回字典键值对组成的元组格式 --dict_items类型: 列表+元组
    注意: 元组+列表的格式则构成了类似PHP的hash数组的功能。
    get() 根据key返回对应values
    fromkeys( 指定序列, 指定值') 使用指定序列作为多个key, 指定值作为统一values

    字典的使用和相关函数

    访问: 类似于index访问, 字段使用d["key"]访问对应value
    成员检测: 使用 in /not in , 检测的对象是key
    字典可以仿造列表写字典推导式(二种样式), 四种结构中只有元组没有推导式。
    遍历: 使用for循环, 不过得改写循环规则

    for  k in dict.keys():
                  dict[k]
    或者
    for  v in dict.values():
                  v
    

    相关文章

      网友评论

          本文标题:python关键字和内建结构, 数据类型

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