Python数据类型
- 整数
- 浮点数
- 字符串 ’ ’ ” “
- 布尔值
True False 可以用and(与),or(或),not(非)运算 Python把0,空字符串,None视为False,其他都是True。
空值 None 不是0,是一个特殊的空值
python允许自定义数据类型
Python变量属于动态语言,可以灵活赋值。
字符串
raw字符串:里面的字符不需要转义,直接原模原样保留 。字符串前加r。多行raw字符串可以 : ”’……………………….”’
Unicode字符串,字符串前加u,可以表示中文,否则不支持中文
如果中文字符串在Python环境下遇到 UnicodeDecodeError,这是因为.py文件保存的格式有问题。可以在第一行添加注释:
# -*- coding: utf-8 -*
内置数据类型
list
用[]括起来的就是一个list对象,不要求是同一种类型数据的集合,元素间用逗号隔开。有序集合,类似数组,但是支持倒序访问 [-1]表示倒数第一个,[-2]表示倒数第二个。
list元素追加:
list.append(追加的元素) 。append总是追加的最后。还可以调用insert(下标,元素)
list元素删除:
pop(),不传参数直接删除最后一个元素,可以传入下标删除指定元素
list元素的替换:
直接给对应下标赋值
list支持切片,倒序切片,把字符串看成list之后也可以进行切片,相当于字符串的截取:
L = range(1, 101)
eg:
print L[:10] 取出前10个数
print L[2::3] 取出 3的倍数
print L[4:50:5] 取出不大于50的5的倍数
tuple
类似于list,但是一旦创建无法修改,访问方式与list一致,定义时使用()。Python 规定,单元素 tuple 要多加一个逗号“,”,避免歧义。
当tuple中包含list时,list部分是可变的
Python代码的缩进规则
具有相同缩进的代码被视为代码块 缩进请严格按照Python的习惯写法:4个空格,不要使用Tab,更不要混合Tab和空格,否则很容易造成因为缩进引起的语法错误。
if 语句后接表达式,然后用:表示代码块开始
if 条件:
elif 条件:
else:
for循环
for in :
while循环:
while 条件:
break语句与C一致
不支持 ++
diet
key:value形式,通过key值来查找value, 可以简单地使用 d[key] 的形式来查找对应的 value,只要 key 存在,dict就返回对应的value。如果key不存在,会直接报错:KeyError。
d = {
'Adam': 95,
'Lisa': 85,
'Bart': 59
}
要避免 KeyError 发生,有两个办法:
一是先判断一下 key 是否存在,用 in 操作符:
if 'Paul' in d:
print d['Paul']
如果 ‘Paul’ 不存在,if语句判断为False,自然不会执行 print d[‘Paul’] ,从而避免了错误。
二是使用dict本身提供的一个 get 方法,在Key不存在的时候,返回
None:
>>> print d.get('Bart')
59
>>> print d.get('Paul')
None
特点:查找速度快,占用内存大,内部无序,不能存储有序集合。
增加数据:d[key]=value,若key存在则更新value。
遍历:
for key,value in d.items():
print key,':',value
dict 对象有一个 values() 方法,这个方法把dict转换成一个包含所有value的list, itervalues()方法也可遍历value, 它会在迭代过程中依次从 dict 中取出 value,所以 itervalues() 方法比 values() 方法节省了生成 list 所需的内存。
items() 方法把dict对象转换成了包含tuple的list,我们对这个list进行迭代,就可以达到遍历dict对象的目的, teritems()可以达到一样的目的,只不过在迭代过程中不断给出tuple。
set
持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像。
创建 set 的方式是调用 set() 并传入一个 list,list的元素将作为set的元素:
>>> s = set(['A', 'B', 'C'])
对set的访问
用 in 操作符判断,set增加元素:s.add(value),删除:s.remove(value)
函数
在Python中,定义一个函数要使用 def 语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用 return 语句返回。
Python的函数返回多值其实就是返回一个tuple,但写起来更方便。
int()函数的第二个参数是转换进制,如果不传,默认是十进制 (base=10),如果传了,就用传入的参数。
可使用默认参数, 默认参数只能定义在必需参数的后面。
支持可变参数
def fn(*args):
print args
可变参数的名字前面有个 * 号,我们可以传入0个、1个或多个参数给可变参数:
使用 enumerate() 函数,我们可以在for循环中同时绑定索引index和元素name。
列表生成
eg:
>>> [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]