3.3 标志符与赋值号
3.3.1 标志符
标识符是大小写敏感的 abc a2c _acd aKb
3.3.2 "="
In [2]:
x = 3 y = 3 y = x+5 print(x,y)
3 8
3.4 结构数据类型
3.4.1 列表
In [8]:
list() #这里注意是(),可参考元祖
Out[8]:
[]
In [4]:
[]
Out[4]:
[]
In [5]:
[1,]
Out[5]:
[1]
In [6]:
[1,2,3]
Out[6]:
[1, 2, 3]
In [14]:
alist = ['a',1,'b',2.0] print(alist) print(alist[2]) #元素的序号从0开始 [None]*5 #列表支持乘法运算,类似于字符串 'abc'*5
['a', 1, 'b', 2.0] b
Out[14]:
'abcabcabcabcabc'
list.append(x) 列表尾部追加成员x .count(x) 返回列表中元素x出现的次数 .extend(L) 列表中追加一个列表 .index(x) 返回元素x在列表中的序号 .insert(index,object) 制定位置插入元素 .pop() 删除尾部元素并返回 .remove(x) 删除指定元素,有多个相同元素删除第一个 .reverse() 顺序颠倒 .sort() 排序 列表操作中并不返回列表,只是修改列表
In [25]:
alist = [1,2,3,4,5] print(alist) alist.append(1) print(alist) print(alist.count(1)) alist.extend([2,'insert']) print(alist) alist.insert(3,0) print(alist) alist.pop() alist.remove(1) print(alist) alist.reverse() print(alist) alist.sort() print(alist)
[1, 2, 3, 4, 5] [1, 2, 3, 4, 5, 1] 2 [1, 2, 3, 4, 5, 1, 2, 'insert'] [1, 2, 3, 0, 4, 5, 1, 2, 'insert'] [2, 3, 0, 4, 5, 1, 2] [2, 1, 5, 4, 0, 3, 2] [0, 1, 2, 2, 3, 4, 5]
3.4.2 元祖
元祖可以看成是一种特殊的列表,一旦建立就不能改变。
In [37]:
() tuple() (1,) #建立只有一个元素的元祖,元素后一定要有一个‘,’ 2,3 #直接用逗号隔开两个值,也可以创建一个元祖 x,y=2,3 #右边为一个元祖,自动将第一个元素与x绑定 print(x,y) x,y=y,x #交换x,y的值,本质上右边是一个元祖 print(x,y) atpl = (1,2,3) print(atpl[1]) #引用序号1的元素,可以看出与列表一样序号从0开始
2 3 3 2 2
3.4.3 字典
以‘键:值’形式存在 {} 只能通过键访问值,不能通过位置访问
In [44]:
{} dict() adct = {'a':1,'b':2,'c':3.4} print(adct) print(adct['b'])
{'a': 1, 'b': 2, 'c': 3.4} 2
dic.clear() 清空字典 .copy() 复制字典 .get(k,[default]) 获得键k对应的值,不存在则返沪default .items() 获得由键和值组成的迭代器 .keys() 获得键的迭代器 .pop(k) 删除k:v成员对 .update(adict) 从另一个字典更新成员,不存在就创建,存在就覆盖 .values() 获得值的迭代器 .fromkeys(iter,value) 以列表、元祖中给定的键建立字典,成员为value,白话就是值固定,键按列表或元祖增加,很奇特的用法 .popitem() 从字典中删除任意k:v并返回,随机删除 .setdefault(k,default) 如字典中存在键k,返回值,否则就建立k:edfault
In [95]:
adct = {'a':1,'b':2} adct_b = {'c':3,'d':4} alist = ['a','b','c','d','e'] alist_c = [1,2,3,4,5] print(adct) adct.clear() print(adct) adct = adct_b.copy() print(adct) print(adct.get('c')) print(adct.items()) adct.pop('c') print(adct) adct.update(adct_b) print(adct) print(adct.values()) print(adct_c.fromkeys(alist,alist_c)) print(adct_c.popitem()) print(adct_c) print(adct_c.setdefault('a',999))
{'a': 1, 'b': 2} {} {'c': 3, 'd': 4} 3 dict_items([('c', 3), ('d', 4)]) {'d': 4} {'d': 4, 'c': 3} dict_values([4, 3]) {'a': [1, 2, 3, 4, 5], 'b': [1, 2, 3, 4, 5], 'c': [1, 2, 3, 4, 5], 'd': [1, 2, 3, 4, 5], 'e': [1, 2, 3, 4, 5]} ('a', 999) {} 999
3.5 内置常量与逻辑运算符、比较运算符
3.5.1 常用内置常量
None 无 Ture False Python中逻辑为假包括false,none,0,空字符串,空元祖,空列表,空字典等
3.5.2 Python中逻辑运算符
and or not
3.5.3 Python中比较运算符
== > < >= <= != 字符串也是可以比较大小的,依据是其ascii码
3.5.4 Python中其他逻辑操作符
1、is和is not
is和is not 都是二元操作符,用于判断左边和右边对象引用是否指向同一个对象。
2、in和not in
in和not in 都是成员操作符,用于检查某个数据是否存在于某个字符串、列表、元祖、字典等。 对于字典来说,检查的是键,而不是值。
3.6 序列
元祖是不可变的,字符串也是不可变的(修改字符串就是重新创建一个字符串)
3.6.1 序列切片
In [97]:
alst = [0,1,2,3,4,5,6,7,8,9] print(alst[0]) print(alst[-10])
0 0
alst[:] 取全部成员数据 [0:] 同上 [:-1] 取除最后一个成员外的所有数据 [2:5] 得到[2,3,4] [::2] 每隔1个取一个成员 [0:5:2] 从0到4每隔一个取成员 [::-1] 从右到左取全部成员数据 [5:0:-2] 从5开始往左取,每隔一个取
In [99]:
alst = [0,1,2,3,4,5,6,7,8,9] print(alst[:]) print(alst[0:]) print(alst[:-1]) print(alst[2:5]) print(alst[::2]) print(alst[0:5:2]) print(alst[::-1]) print(alst[5:0:-2])
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [0, 1, 2, 3, 4, 5, 6, 7, 8] [2, 3, 4] [0, 2, 4, 6, 8] [0, 2, 4] [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] [5, 3, 1]
3.6.2 序列内置操作
len(s) 返回s的元素长度 min(s) 返回s中的最小值 max(s) 返回s中的最大值 sum(s[,start]) 返回s中各项的和 all(s) s所有项为真,则返回真,否则返回假 any(s) s中有一箱为真,则返回真,否则返回假
In [108]:
s = [0,1,2,3,4] print(len(s)) print(min(s)) print(max(s)) print(sum(s)) print(sum(s,900)) #求和后加上了后面的900 print(all(s)) #0为false print(any(s))
5 0 4 10 910 False True