本笔记只记录python的初级使用方法–数据类型和列表、切片的使用方式
目录
-
- 目录
- python变量和数据类型
- List类型
- Tuple类型
- 条件判断和循环
- Dict类型
- Set类型
- 函数
- 切片
- 迭代
- 列表生成式
python变量和数据类型
数据类型
数据类型 |
表示方法 |
整数 |
处理任意大小整数,十六进制用0x表示 |
浮点数 |
1.23 , 1.23e9 |
字符串 |
以”或”“括起来的任意文本 |
布尔值 |
True和False,用not,or和and进行运算 |
空值 |
None |
print方法
- print语句也可以跟上多个字符串,用逗号“,”隔开,就可以连成一串输出。其中逗号输出会变成空格。例:print ‘Hello,’,’World’
- 保留字符串原有格式用r’…’表示,保留多行的原生字符串用r”’…”’表示(即html中的pre标签)
- print u’中文’可以输出中文的字符串,即以可以输出Unicode编码的字符串
List类型
list是一个有序的集合,[,]里面可以放置不同数据类型的元素。
- list的创建:L = [‘Adam’, 95.5, ‘Lisa’, 85, ‘Bart’, 59]
- list查询:通过索引获取指定元素[从0开始],例L[0]
- list倒序访问:例访问倒数第一个元素L[-1]
- list添加:L.append(元素)–在列表末尾添加元素,L.insert(索引号,元素)在指定位置添加元素。【.方法名(),下述不重复】
- list删除:pop()删除最后一个元素,pop(索引号)删除对应元素
- list替换:通过赋值运算进行替换,例L[-1]=’Paul’
Tuple类型
tuple与list类似,但tuple一旦被创建就无法被修改。
- tuple创建:t = (‘Adam’, ‘Lisa’, ‘Bart’)
- 单元素tuple:tuple(1,)
- ‘可变’之tuple:t = (‘a’, ‘b’, [‘A’, ‘B’]),其中tuple中的list元素[‘A’, ‘B’]可以变成[‘X’, ‘Y’],tuple一开始指向的list并没有改成别的list。所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向’a’,就不能改成指向’b’
条件判断和循环
python代码中的缩进规则(四个空格)
len(d)可以计算任意集合的大小
python中并没有n++这样的表示方法
python条件判断:if…elif…elif…else
循环
- for循环: for name in L (依次将list或tuple每个元素迭代出来)
- while循环: while x < N (根据表达式判断退出,其中break,continue关键字同C语言)
- 多重循环: for x in list1 … for y in list2 … (可用于表示A1、A2、B1、B2…)
Dict类型
字典类型Dict将key和value关联起来,其内部无序,速度查找快,key元素必须不可变且不能重复
- dict创建:dict = { key : value}
- dict访问:dict[key] (为防止错误,可以预先判断key是否存在– [if ‘Paul’ in dict] 或 [dict.get(‘Paul’)]取其值看是否为None )
- dict更新:采用dict[key]的赋值语句
- dict遍历: for key in dict
Set类型
Set类型是无序不重复的序列(与dict中的key很像)
- Set创建:通过调用set方法再传人一个list进行创建,例s = set([‘A’, ‘B’, ‘C’])
- Set访问: ‘Bill’ in s 来进行判断元素是否再Set中
- Set添加:add()
- Set移除:remove() 移除时需判断元素是否在Set中
函数
函数是一种最基本的一种代码抽象方式,python内置函数可以直接从Python的官方网站查看文档:
http://docs.python.org/2/library/functions.html#abs,还可以在命令行用help(函数名)来查找
- 编写函数: def 函数名(参数):
- 导入包: import math
- python函数返回多值: return nx, ny 即返回一个元组
- 递归函数:一个函数在内部调用自身,fact(n)可以表示为 n * fact(n-1),只有n=1时需要特殊处理。
- 定义默认参数: 默认参数只能定义在必需参数之后 def fn (a, b=1,c=2)
- 定义可变参数: def fn(*args) 可传人0~n个参数,把args看成一个元组
切片
切片,顾名思义就是将列表切成若干片后的产物。L[0:3]取L中的前三个元素组成一个list(从0开始)
- L[:3]取前三,L[:]复制一个L,L[m:n:2]前两个参数即取[m,n)的元素,第三个参数即说明每隔两个取一个元素
- 倒序切片:L[-2:]取倒数两个元素
- 字符串切片: ‘ABCDEF’[:3] ==> ‘ABC’
迭代
在Python中,迭代是通过 for … in 来完成的, 很多语言是通过下标遍历列表的。迭代与按下标访问数组最大的不同是,后者是一种具体的迭代实现方式,而前者只关心迭代结果,根本不关心迭代内部是如何实现的。
- 索引迭代
不仅能取出元素本身,还能取出元素索引,适用于有序集合的迭代
使用enumerate()将[element]变为元组(index, element)
for index, name in enumerate(L):
print index, '-', name
迭代dict的value
- d.values() : 即将dict转化为包含value的list
- d.itervalues() : 在迭代过程中取出dict的value,比values()节省了生成list的内存
迭代dict的key和value
- d.items(): 将dict转化为tuple的list
- d.iteritems() : 同上述itervalues()功能
>>> d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
>>> print d.items()
[('Lisa', 85), ('Adam', 95), ('Bart', 59)]
>>> for key, value in d.items():
... print key, ':', value
...
Lisa : 85
Adam : 95
Bart : 59
列表生成式
>>> [x * x for x in range(1, 11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
>>> [x * x for x in range(1, 11) if x % 2 == 0]
[4, 16, 36, 64, 100]
>>> [m + n for m in 'ABC' for n in '123']
['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']
注:range(x,y,z) : 在[x , y)范围中每隔z个数字取一个数字