小白的python笔记

本笔记只记录python的初级使用方法–数据类型和列表、切片的使用方式


目录


python变量和数据类型

数据类型

数据类型 表示方法
整数 处理任意大小整数,十六进制用0x表示
浮点数 1.23 , 1.23e9
字符串 以”或”“括起来的任意文本
布尔值 True和False,用not,or和and进行运算
空值 None

print方法

  1. print语句也可以跟上多个字符串,用逗号“,”隔开,就可以连成一串输出。其中逗号输出会变成空格。例:print ‘Hello,’,’World’
  2. 保留字符串原有格式用r’…’表示,保留多行的原生字符串用r”’…”’表示(即html中的pre标签)
  3. print u’中文’可以输出中文的字符串,即以可以输出Unicode编码的字符串

List类型

list是一个有序的集合,[,]里面可以放置不同数据类型的元素。

  1. list的创建:L = [‘Adam’, 95.5, ‘Lisa’, 85, ‘Bart’, 59]
  2. list查询:通过索引获取指定元素[从0开始],例L[0]
  3. list倒序访问:例访问倒数第一个元素L[-1]
  4. list添加:L.append(元素)–在列表末尾添加元素,L.insert(索引号,元素)在指定位置添加元素。【.方法名(),下述不重复】
  5. list删除:pop()删除最后一个元素,pop(索引号)删除对应元素
  6. list替换:通过赋值运算进行替换,例L[-1]=’Paul’

Tuple类型

tuple与list类似,但tuple一旦被创建就无法被修改。

  1. tuple创建:t = (‘Adam’, ‘Lisa’, ‘Bart’)
  2. 单元素tuple:tuple(1,)
  3. ‘可变’之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


循环

  1. for循环: for name in L (依次将list或tuple每个元素迭代出来)
  2. while循环: while x < N (根据表达式判断退出,其中break,continue关键字同C语言)
  3. 多重循环: for x in list1 … for y in list2 … (可用于表示A1、A2、B1、B2…)

Dict类型

字典类型Dict将key和value关联起来,其内部无序,速度查找快,key元素必须不可变且不能重复

  1. dict创建:dict = { key : value}
  2. dict访问:dict[key] (为防止错误,可以预先判断key是否存在– [if ‘Paul’ in dict] 或 [dict.get(‘Paul’)]取其值看是否为None )
  3. dict更新:采用dict[key]的赋值语句
  4. dict遍历: for key in dict

Set类型

Set类型是无序不重复的序列(与dict中的key很像)

  1. Set创建:通过调用set方法再传人一个list进行创建,例s = set([‘A’, ‘B’, ‘C’])
  2. Set访问: ‘Bill’ in s 来进行判断元素是否再Set中
  3. Set添加:add()
  4. Set移除:remove() 移除时需判断元素是否在Set中

函数

函数是一种最基本的一种代码抽象方式,python内置函数可以直接从Python的官方网站查看文档:
http://docs.python.org/2/library/functions.html#abs,还可以在命令行用help(函数名)来查找

  1. 编写函数: def 函数名(参数):
  2. 导入包: import math
  3. python函数返回多值: return nx, ny 即返回一个元组
  4. 递归函数:一个函数在内部调用自身,fact(n)可以表示为 n * fact(n-1),只有n=1时需要特殊处理。
  5. 定义默认参数: 默认参数只能定义在必需参数之后 def fn (a, b=1,c=2)
  6. 定义可变参数: def fn(*args) 可传人0~n个参数,把args看成一个元组

切片

切片,顾名思义就是将列表切成若干片后的产物。L[0:3]取L中的前三个元素组成一个list(从0开始)

  1. L[:3]取前三,L[:]复制一个L,L[m:n:2]前两个参数即取[m,n)的元素,第三个参数即说明每隔两个取一个元素
  2. 倒序切片:L[-2:]取倒数两个元素
  3. 字符串切片: ‘ABCDEF’[:3] ==> ‘ABC’

迭代

在Python中,迭代是通过 for … in 来完成的, 很多语言是通过下标遍历列表的。迭代与按下标访问数组最大的不同是,后者是一种具体的迭代实现方式,而前者只关心迭代结果,根本不关心迭代内部是如何实现的。

  • 索引迭代
    不仅能取出元素本身,还能取出元素索引,适用于有序集合的迭代
    使用enumerate()将[element]变为元组(index, element)
for index, name in enumerate(L):
    print index, '-', name
  • 迭代dict的value

    1. d.values() : 即将dict转化为包含value的list
    2. d.itervalues() : 在迭代过程中取出dict的value,比values()节省了生成list的内存
  • 迭代dict的key和value

    1. d.items(): 将dict转化为tuple的list
    2. 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个数字取一个数字

猜你喜欢

转载自blog.csdn.net/tedone_lz/article/details/53107406