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

部分特殊关键字记录:

  • 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)
  • yield python特有 使用参考

部分数据类型相关说明

整型 (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关键字和内建结构, 数据类型)