8.23
在Python中,通常用全部大写的变量名表示常量。
列表:
classmates = [‘Michael‘, ‘Bob‘, ‘Tracy‘]
还可以用-1
做索引,直接获取最后一个元素:
也可以把元素插入到指定的位置,比如索引号为1
的位置:
要删除list末尾的元素,用pop()
方法:
要删除指定位置的元素,用pop(i)
方法,其中i
是索引位置:
tuple:
classmates = (‘Michael‘, ‘Bob‘, ‘Tracy‘)
classmates这个tuple不能变了,它也没有append(),insert()这样的方法。其他获取元素的方法和list是一样的
只有1个元素的tuple定义时必须加一个逗号,
,来消除歧义
条件判断
if age >= 18: print ‘your age is‘, age print ‘adult‘
elif age >= 6: print ‘teenager‘
else: print ‘your age is‘, age print ‘teenager‘
循环
range(5)生成的序列是从0开始小于5的整数:
词典
要避免key不存在的错误,有两种办法,一是通过in
判断key是否存在:
二是通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:
注意:返回None的时候Python的交互式命令行不显示结果。
要删除一个key,用pop(key)
方法,对应的value也会从dict中删除:
set集合
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
要创建一个set,需要提供一个list作为输入集合:
>>> s = set([1, 2, 3])
>>> s
set([1, 2, 3])
通过add(key)
方法可以添加元素到set中,可以重复添加,但不会有效果:
通过remove(key)
方法可以删除元素:
set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:
再议不可变对象 我自己犯过的错误
对于可变对象,比如list,对list进行操作,list内部的内容是会变化的,比如:
>>> a = [‘c‘, ‘b‘, ‘a‘]
>>> a.sort()
>>> a
[‘a‘, ‘b‘, ‘c‘]
而对于不可变对象,比如str,对str进行操作呢:
>>> a = ‘abc‘
>>> a.replace(‘a‘, ‘A‘)
‘Abc‘
>>> a
‘abc‘
虽然字符串有个replace()
方法,也确实变出了‘Abc‘
,但变量a
最后仍是‘abc‘
,应该怎么理解呢?
我们先把代码改成下面这样:
>>> a = ‘abc‘
>>> b = a.replace(‘a‘, ‘A‘)
>>> b
‘Abc‘
>>> a
‘abc‘
要始终牢记的是,a
是变量,而‘abc‘
才是字符串对象!有些时候,我们经常说,对象a
的内容是‘abc‘
,但其实是指,a
本身是一个变量,它指向的对象的内容才是‘abc‘
:
明天看 函数一节。