python数据类型:
1.整数
2.浮点数
3.字符串 print 多个字符串时以逗号连接 print "hello","world" -> hello world
4.布尔 True False 注意大小写
5.空值 None
6.常量
7.list list是一种有序的集合,可以随时添加和删除其中的元素,list中元素也可以是不同类型
8.tuple
tuple(元组)也是一种有序列表,tuple初始化后就不能修改,元素也可以是不同类型。没有append(),insert()这样
的方法。其他获取元素的方法和list是一样的。如果定义包含一个元素的tuple,建议后面添加逗号tuple = (1,) 如果不
加逗号python会将(1)理解为整数类型,小括号被认为是运算符号。注意,如果tuple中的元素是list的话,list中的内容
也是可以改变的,这样该tuple就成了“可变的tuple”,此时不可变是指向的list内存中的地址不可变。
9.dict
dict全称dictionary,使用(key-value)存储,且key是不重复的,查找速度非常快。因为每次存取时要通过哈希算法
计算每个key在内存中的位置,所以dict的key必须是不可变对象
<span style="font-size:18px;"><span style="font-size:18px;">>>> d = {'zhangsan': 35, 'lisi': 45, 'wangwu': 55}
>>> d['zhangsan']
35</span></span></span>
如果取值时dict中不存在指定的key程序会报错,所以在取之前应先判断是否存在key。也可以使用dict的get方法,如果不存在会返回None,或自己指定返回值
<span style="font-size:18px;"><span style="font-size:18px;">>>> 'zhaoliu' in d
False
>>> d.get('Thomas')
>>> d.get('Thomas', 'not exist')
'not exist'
</span></span>
10.set
set与dict类似,区别只存储key,不存储value
条件判断:
if语句格式:
<span style="font-size:18px;"><span style="font-size:18px;">a = 1
if a > 0:
print 'a is', a
elif a = 0:
print 'a is', a
else:
print 'a is', a
</span></span>
如果if为True,会执行if下面缩进语句,否则执行else下面缩进语句。注意条件后面的冒号
<span style="font-size:18px;"><span style="font-size:18px;">if a:
print 'True'</span></span>
如果a是非零数值、非空字符串、非空list等,就判断为True,否则为False
循环判断:
for...in
<span style="font-size:18px;"><span style="font-size:18px;">list1 = ['zhangsan', 'lisi', 'wangwu']
for l in list1:
print l</span></span>
while
<span style="font-size:18px;"><span style="font-size:18px;">a = 10
while n > 0:
a = a - 1
print a</span></span>
python函数
参考官方文档:http://docs.python.org/2/library/functions.html#abs
函数定义
<span style="font-size:18px;"><span style="font-size:18px;">def my_func(a):
if a >= 0:
return a
else:
return -a</span></span>
如果不写return,函数的返回值为None
如果函数功能暂时还未开发,先放个空函数可以使用pass
<span style="font-size:18px;"><span style="font-size:18px;">def func():
pass</span></span>
返回多个值<span style="font-size:18px;"><span style="font-size:18px;">def mult():
a = 1
b = 2
return a, b
c,d = mult()
print c,d
1 2
f = mult()
print f
(1,2)
</span></span>
当函数返回多个值时,实际上是返回了一个tuple。函数的参数
python函数的参数包括:默认参数、可变参数和关键字参数
默认参数
<span style="font-size:18px;"><span style="font-size:18px;">def printInfo(name, age, country='china', city='Beijing'):
print 'name:', name
print 'age:', age
print 'country:', country
print 'city:', city</span></span>
调用时可按顺序依次传入参数,也可以指定传入参数<span style="font-size:18px;"><span style="font-size:18px;">printInfo('zhangsan', 20, 'china')
printInfo('zhangsan', 20, city='Shenzhen')</span></span>
注意:Python函数在定义的时候,默认参数就被初始化了,在不传入(修改)默认参数的情况下始终指向内存中同一
个对象,为了避免参数的数据正确性,默认参数要使用基本类型(非引用类型)
可变参数
定义可变参数的函数时参数前加个*
<span style="font-size:18px;"><span style="font-size:18px;">def sum(*numbers):
sum = 0
for n in numbers:
sum = sum + n
return sum</span></span>
调用时<span style="font-size:18px;"><span style="font-size:18px;">sum(1,2,3)</span></span>
函数内部会将可变参数组装成一个tuple使用
如果想直接传一个tuple或list可以在传入的时候前面加一个*
<span style="font-size:18px;"><span style="font-size:18px;">numbers = [1,2,3]
sum(*numbers)</span></span>
关键字参数
定义关键字参数的函数时参数前加**,关键字参数为可选参数
<span style="font-size:18px;">def person(name, age, **other):
print 'name:', name, 'age:', age, 'other:', other</span>
这些关键字参数在函数内部自动组装为一个dict.<span style="font-size:18px;">person('zhangsan', 25, gender='man',address='beijing')
name: zhangsan age: 25 other: {'gender': 'man',address='beijing'}</span>
如果想直接传一个dict在参数前加**<span style="font-size:18px;">other = {gender='man',address='beijing'}
person('zhangsan', 25, **other)</span>
参数组合
在Python中定义函数,可以用必选参数、默认参数、可变参数和关键字参数,这4种参数都可以一起使用,或者只用
其中某些,但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数和关键字参数。
切片
取list前三个元素
<span style="font-size:18px;">list[0:3]</span>
从索引0开始取,直到索引3为止,但不包括索引3。如果从索引0位置开始,0可以省略<span style="font-size:18px;">list[:3]</span>
前10个数,每两个取一个
<span style="font-size:18px;">list[:10:2]</span>
所有数,每5个取一个
<span style="font-size:18px;">list[::5]</span>
什么都不写,只写[:]
就可以原样复制一个list
<span style="font-size:18px;">list[:]</span>
tuple也是一种list,唯一区别是tuple不可变。因此,tuple也可以用切片操作,只是操作的结果仍是tuple
(0, 1, 2, 3, 4, 5)[:3]
字符串也可以用切片操作,只是操作结果仍是字符串
'ABCDEFG'[:3]