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]