布尔数中的短路法则:
1. 在计算 a and b
时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。
2. 在计算 a or b
时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。
所以Python解释器在做布尔运算时,如果提前确定计算结果,就不会往后算了,直接返回结果。
构造list
2)构造list很简单,按照上面的代码,直接用 [ ]
把list的所有元素都括起来,就是一个list对象。通常,我们会把list赋值给一个变量,这样,就可以通过变量来引用list:意义上是数学的有序集合
3)按照索引访问list 需要特别注意的是,索引从 0 开始,也就是说,第一个元素的索引是0,第二个元素的索引是1,以此类推。(类比数组)
当索引数字为负数时,表示逆序读出List中的内容 L = [1, 2, 3] print L[-1]-->2 ps:不能越界 out of range
4)添加新元素 运用函数append()总是把新的元素添加到 list 的尾部 L.insert(0, 'X') 的意思是,'Paul'将被添加到索引为 0 的位置上(也就是第一个),而原来索引为 0 的A同学,以及后面的所有同学,向后移动一位
5)删除元素 pop()方法总是删掉list的最后一个元素,并且它返回这个元素 要把X踢出list,先定位X的位置。由于x的索引是2,因此,用 pop(2)
把x删掉
6)替换元素
7)创建元组
tuple是另一种有序的列表,中文翻译为“ 元组 ”。tuple 和 list 类似,但是,tuple一旦创建完毕,就不能修改了。圆括号替代方括号
正是因为用()定义单元素的tuple有歧义,所以 Python 规定,单元素 tuple 要多加一个逗号“,”,这样就避免了歧义:
8)if语句根据缩进原则,相同缩进的代码是为统一代码块
缩进请严格按照Python的习惯写法:4个空格,不要使用Tab,更不要混合Tab和空格,否则很容易造成因为缩进引起的语法错误。
9)if-else语句
语句嵌套
10)for循环 while循环
11)字典的语法
{}表示dic ()表示list 【】表示元组tuple
dic的访问
dic特点查找速度快但占用内存大且key不能重名,list速度慢但是占用内存小
dict的第二个特点就是存储的key-value序对是没有顺序的!
dict的第三个特点是作为 key 的元素必须不可变
dictionary的更新
用for遍历dict
for key in d
有时只关心key对于value并不关心此时用到set
索引set
由于set存储的是无序集合,所以我们没法通过索引来访问
set 的特点
set的内部结构和dict很像,唯一区别是不存储valueset存储的元素也是没有顺序的
set更新用函数set.sdd()
定义函数:在Python中,定义一个函数要使用 def 语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用 return 语句返回。
定义函数中的可变参数
对list进行切片(取指定元素)
倒叙切片 联系list支持倒序取值 L【-1】
切片包括list tuple dic和字符串都可以
什么是迭代?==循环操作 Iteration
注意: 集合是指包含一组元素的数据结构,我们已经介绍的包括:
1. 有序集合:list,tuple,str和unicode;
2. 无序集合:set
3. 无序集合并且具有 key-value 对:dict
索引的迭代
for index, name in enumerate(L):
运用enumerate函数(列举 枚举)
dic的迭代方法,迭代出value
那这两个方法有何不同之处呢?
1. values() 方法实际上把一个 dict 转换成了包含 value 的list。
2. 但是 itervalues() 方法不会转换,它会在迭代过程中依次从 dict 中取出 value,所以 itervalues() 方法比 values() 方法节省了生成 list 所需的内存。
3. 打印 itervalues() 发现它返回一个 <dictionary-valueiterator> 对象,这说明在Python中,for 循环可作用的迭代对象远不止 list,tuple,str,unicode,dict等,任何可迭代对象都可以作用于for循环,而内部如何迭代我们通常并不用关心。
如果一个对象说自己可迭代,那我们就直接用 for 循环去迭代它,可见,迭代是一种抽象的数据操作,它不对迭代对象内部的数据有任何要求
同时迭代出key和value的方法
items函数的使用和iteritems函数的使用
for key,vaules in d.items()
print(key,':',values)
list的生成
条件过滤:
[x * x for x in range(a, b)]