一、標(biāo)準(zhǔn)數(shù)據(jù)類型
- Numbers(數(shù)字)
- String(字符串)
- List(列表)
- Tuple(元組)
- Dictionary(字典)
Python數(shù)字
數(shù)字?jǐn)?shù)據(jù)類型用于存儲(chǔ)數(shù)值驱犹。
他們是不可改變的數(shù)據(jù)類型伞剑,這意味著改變數(shù)字?jǐn)?shù)據(jù)類型會(huì)分配一個(gè)新的對(duì)象睬棚。
當(dāng)你指定一個(gè)值時(shí)表制,Number對(duì)象就會(huì)被創(chuàng)建:
var1 = 1
可以通過使用del語句刪除單個(gè)或多個(gè)對(duì)象的引用崎场。例如:
del var
del var1, var2
Python支持四種不同的數(shù)字類型:
- int(有符號(hào)整型)
- long(長整型[也可以代表八進(jìn)制和十六進(jìn)制])
- float(浮點(diǎn)型)
- complex(復(fù)數(shù))
一些數(shù)值類型的實(shí)例:
int | long | float | complex |
---|---|---|---|
10 | 51924361L | 0.0 | 3.14j |
-786 | 0122L | -21.9 | 9.322e-36j |
Python還支持復(fù)數(shù)见秤,復(fù)數(shù)由實(shí)數(shù)部分和虛數(shù)部分構(gòu)成砂竖,可以用a + bj,或者complex(a,b)表示, 復(fù)數(shù)的實(shí)部a和虛部b都是浮點(diǎn)型
常用的數(shù)學(xué)函數(shù)
函數(shù) | 返回值(描述) |
---|---|
abs(x) | 返回?cái)?shù)字的絕對(duì)值鹃答,如abs(-10) 返回 10 |
ceil(x) | 返回?cái)?shù)字的上入整數(shù)乎澄,如math.ceil(4.1) 返回 5 |
cmp(x, y) | 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1 |
floor(x) | 返回?cái)?shù)字的下舍整數(shù),如math.floor(4.9)返回 4 |
max(x1, x2,...) | 返回給定參數(shù)的最大值测摔,參數(shù)可以為序列三圆。 |
min(x1, x2,...) | 返回給定參數(shù)的最小值,參數(shù)可以為序列避咆。 |
pow(x, y) | x**y 運(yùn)算后的值舟肉。 |
round(x [,n]) | 返回浮點(diǎn)數(shù)x的四舍五入值,如給出n值查库,則代表舍入到小數(shù)點(diǎn)后的位數(shù)路媚。 |
sqrt(x) | 返回?cái)?shù)字x的平方根,數(shù)字可以為負(fù)數(shù)樊销,返回類型為實(shí)數(shù)整慎,如math.sqrt(4)返回 2+0j |
Python字符串
字符串或串(String)是由數(shù)字、字母围苫、下劃線組成的一串字符裤园。
python的字串列表有2種取值順序:
- 從左到右索引默認(rèn)0開始的,最大范圍是字符串長度少1
- 從右到左索引默認(rèn)-1開始的剂府,最大范圍是字符串開頭
實(shí)例:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
str = 'Hello World!'
print str # 輸出完整字符串
print str[0] # 輸出字符串中的第一個(gè)字符
print str[2:5] # 輸出字符串中第三個(gè)至第五個(gè)之間的字符串
print str[2:] # 輸出從第三個(gè)字符開始的字符串
print str * 2 # 輸出字符串兩次
print str + "TEST" # 輸出連接的字符串
注: 加號(hào)(+)是字符串連接運(yùn)算符拧揽,星號(hào)(*)是重復(fù)操作。
print 1,
print 2
輸出結(jié)果為:
1 2
加了逗號(hào)之后 換行就變成了空格
python三引號(hào)
python三引號(hào)允許一個(gè)字符串跨多行腺占,字符串中可以包含換行符淤袜、制表符以及其他特殊字符。
三引號(hào)的語法是一對(duì)連續(xù)的單引號(hào)或者雙引號(hào)(通常都是成對(duì)的用)
>>> hi = '''hi
there'''
>>> hi # repr()
'hi\nthere'
>>> print hi # str()
hi
there
常見的字符串運(yùn)算符:
下表實(shí)例變量 a 值為字符串 "Hello"衰伯,b 變量值為 "Python":
操作符 | 描述 | 實(shí)例 |
---|---|---|
+ | 字符串連接 | >>>a + b 'HelloPython' |
* | 重復(fù)輸出字符串 | >>>a * 2 'HelloHello' |
[] | 通過索引獲取字符串中字符 | >>>a[1] 'e' |
[ : ] | 截取字符串中的一部分 | >>>a[1:4] 'ell' |
in | 成員運(yùn)算符 - 如果字符串中包含給定的字符返回 True | >>>"H" in a True |
not in | 成員運(yùn)算符 - 如果字符串中不包含給定的字符返回 True | >>>"M" not in a True |
Python列表
List(列表) 是 Python 中使用最頻繁的數(shù)據(jù)類型铡羡。
列表可以完成大多數(shù)集合類的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)。它支持字符意鲸,數(shù)字烦周,字符串甚至可以包含列表(所謂嵌套)尽爆。
列表用[ ]標(biāo)識(shí)。是python最通用的復(fù)合數(shù)據(jù)類型读慎。
實(shí)例:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
print list # 輸出完整列表
print list[0] # 輸出列表的第一個(gè)元素
print list[1:3] # 輸出第二個(gè)至第三個(gè)的元素
print list[2:] # 輸出從第三個(gè)開始至列表末尾的所有元素
print tinylist * 2 # 輸出列表兩次
print list + tinylist # 打印組合的列表
list[-2] = 'john' # 讀取列表中倒數(shù)第二個(gè)元素
list[1:] = [785, 2,23, 'john', 70.2] # 從第二個(gè)元素開始截取列表
Python列表腳本操作符
pyhton表達(dá)式 | 結(jié)果 | 描述 |
---|---|---|
len([1, 2, 3]) | 3 | 長度 |
[1, 2, 3] + [4, 5, 6] | [1, 2, 3, 4, 5, 6] | 組合 |
['Hi!'] * 4 | ['Hi!', 'Hi!', 'Hi!', 'Hi!'] | 重復(fù) |
3 in [1, 2, 3] | True | 元素是否存在于列表中 |
for x in [1, 2, 3]: print x, | 1 2 3 | 迭代 |
python包含以下函數(shù):
函數(shù) | 描述 |
---|---|
cmp(list1, list2) | 比較兩個(gè)列表的元素 |
len(list) | 列表元素個(gè)數(shù) |
min(list) | 返回列表元素最小值 |
max(list) | 返回列表元素最大值 |
list(seq) | 將元組轉(zhuǎn)換為列表 |
列表有以下方法:
方法 | 描述 |
---|---|
list.append(obj) | 在列表末尾添加新的對(duì)象 |
list.count(obj) | 統(tǒng)計(jì)某個(gè)元素在列表中出現(xiàn)的次數(shù) |
list.extend(seq) | 在列表末尾一次性追加另一個(gè)序列中的多個(gè)值(用新列表擴(kuò)展原來的列表) |
list.index(obj) | 從列表中找出某個(gè)值第一個(gè)匹配項(xiàng)的索引位置 |
list.insert(index, obj) | 將對(duì)象插入列表 |
list.pop(obj=list[-1]) | 移除列表中的一個(gè)元素(默認(rèn)最后一個(gè)元素)教翩,并且返回該元素的值 |
list.remove(obj) | 移除列表中某個(gè)值的第一個(gè)匹配項(xiàng) |
list.reverse() | 反向列表中元素 |
list.sort([func]) | 對(duì)原列表進(jìn)行排序 |
python元組
元組是另一個(gè)數(shù)據(jù)類型脚囊,類似于List(列表)括儒。
元組用"()"標(biāo)識(shí)决侈。內(nèi)部元素用逗號(hào)隔開山涡。但是元組不能二次賦值幔睬,相當(dāng)于只讀列表角溃。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
tinytuple = (123, 'john')
print tuple # 輸出完整元組
print tuple[0] # 輸出元組的第一個(gè)元素
print tuple[1:3] # 輸出第二個(gè)至第三個(gè)的元素
print tuple[2:] # 輸出從第三個(gè)開始至列表末尾的所有元素
print tinytuple * 2 # 輸出元組兩次
print tuple + tinytuple # 打印組合的元組
以下是元組無效的睬愤,因?yàn)樵M是不允許更新的淆九。而列表是允許更新的:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
tuple[2] = 1000 # 元組中是非法應(yīng)用
list[2] = 1000 # 列表中是合法應(yīng)用
創(chuàng)建元組:
tup1 = () # 創(chuàng)建空元組
tup2 = (50,) # 元組中只包含一個(gè)元素時(shí)蚂且,需要在元素后面添加逗號(hào)
修改元組
元組中的元素值是不允許修改的配猫,但我們可以對(duì)元組進(jìn)行連接組合,如下實(shí)例:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
tup1 = (12, 34.56);
tup2 = ('abc', 'xyz');
# 以下修改元組元素操作是非法的杏死。
# tup1[0] = 100;
# 創(chuàng)建一個(gè)新的元組
tup3 = tup1 + tup2;
print tup3;
python字典
字典(dictionary)是除列表以外python之中最靈活的內(nèi)置數(shù)據(jù)結(jié)構(gòu)類型泵肄。列表是有序的對(duì)象結(jié)合,字典是無序的對(duì)象集合淑翼。
兩者之間的區(qū)別在于:字典當(dāng)中的元素是通過鍵來存取的腐巢,而不是通過偏移存取。
字典用"{ }"標(biāo)識(shí)玄括。字典由索引(key)和它對(duì)應(yīng)的值value組成冯丙。
實(shí)例:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
tinydict = {'name': 'john','code':6734, 'dept': 'sales'}
print dict['one'] # 輸出鍵為'one' 的值
print dict[2] # 輸出鍵為 2 的值
print tinydict # 輸出完整的字典
print tinydict.keys() # 輸出所有鍵
print tinydict.values() # 輸出所有值
Python字典包含了以下內(nèi)置方法:
函數(shù) | 描述 |
---|---|
dict.clear() | 刪除字典內(nèi)所有元素 |
dict.copy() | 返回一個(gè)字典的淺復(fù)制 |
dict.fromkeys(seq[, val])) | 創(chuàng)建一個(gè)新字典,以序列 seq 中元素做字典的鍵遭京,val 為字典所有鍵對(duì)應(yīng)的初始值 |
dict.get(key, default=None) | 返回指定鍵的值胃惜,如果值不在字典中返回default |
dict.has_key(key) | 如果鍵在字典dict里返回true,否則返回false |
dict.items() | 以列表返回可遍歷的(鍵, 值) 元組數(shù)組 |
dict.keys() | 以列表返回一個(gè)字典所有的鍵 |
dict.setdefault(key, default=None) | 和get()類似, 但如果鍵不存在于字典中哪雕,將會(huì)添加鍵并將值設(shè)為default |
dict.update(dict2) | 把字典dict2的鍵/值對(duì)更新到dict里 |
dict.values() | 以列表返回字典中的所有值 |
二船殉、循環(huán)語句
Python提供了for循環(huán)和while循環(huán)(在Python中沒有do..while循環(huán)):
while語法跟java相似({}改為:,再注意一下語句的縮進(jìn)即可)斯嚎,所以不做過多的介紹利虫。
循環(huán)使用 else 語句
在 python 中,while … else 在循環(huán)條件為 false 時(shí)執(zhí)行 else 語句塊:
#!/usr/bin/python
count = 0
while count < 5:
print count, " is less than 5"
count = count + 1
else:
print count, " is not less than 5"
for循環(huán)語句
for循環(huán)的語法格式如下:
for iterating_var in sequence:
statements(s)
通過序列索引迭代:
for num in range(10,20): # 迭代 10 到 20 之間的數(shù)字
print num
for num in range(10): # 迭代 0 到 10 之間的數(shù)字
print num
range()函數(shù)實(shí)例:
range(1,5) # 代表從1到5(不包含5)
[1, 2, 3, 4]
>>> range(1,5,2) # 代表從1到5孝扛,間隔2(不包含5)
[1, 3]
>>> range(5) # 代表從0到5(不包含5)
[0, 1, 2, 3, 4]
pass語句
Python pass是空語句列吼,是為了保持程序結(jié)構(gòu)的完整性幽崩。
pass 不做任何事情苦始,一般用做占位語句。
當(dāng)你在編寫一個(gè)程序時(shí)慌申,執(zhí)行語句部分思路還沒有完成陌选,這時(shí)你可以用pass語句來占位理郑,也可以當(dāng)做是一個(gè)標(biāo)記,是要過后來完成的代碼
三咨油、函數(shù)
定義一個(gè)函數(shù)您炉,需要滿足以下規(guī)則:
- 函數(shù)代碼塊以 def 關(guān)鍵詞開頭,后接函數(shù)標(biāo)識(shí)符名稱和圓括號(hào)()役电。
- 任何傳入?yún)?shù)和自變量必須放在圓括號(hào)中間赚爵。圓括號(hào)之間可以用于定義參數(shù)。
- 函數(shù)的第一行語句可以選擇性地使用文檔字符串—用于存放函數(shù)說明法瑟。
- 函數(shù)內(nèi)容以冒號(hào)起始冀膝,并且縮進(jìn)。
- return [表達(dá)式] 結(jié)束函數(shù)霎挟,選擇性地返回一個(gè)值給調(diào)用方窝剖。不帶表達(dá)式的return相當(dāng)于返回 None。
實(shí)例:
def printme( str ):
"打印傳入的字符串到標(biāo)準(zhǔn)顯示設(shè)備上"
print str
return
可更改(mutable)與不可更改(immutable)對(duì)象
在 python 中酥夭,strings, tuples, 和 numbers 是不可更改的對(duì)象赐纱,而 list,dict 等則是可以修改的對(duì)象。
python 函數(shù)的參數(shù)傳遞:
不可變類型:類似 c 的值傳遞熬北,如 整數(shù)疙描、字符串、元組讶隐。如fun(a)淫痰,傳遞的只是a的值,沒有影響a對(duì)象本身整份。比如在 fun(a)內(nèi)部修改 a 的值待错,只是修改另一個(gè)復(fù)制的對(duì)象,不會(huì)影響 a 本身烈评。
可變類型:類似 c 的引用傳遞火俄,如 列表,字典讲冠。如 fun(la)瓜客,則是將 la 真正的傳過去,修改后fun外部的la也會(huì)受影響
匿名函數(shù)
python 使用 lambda 來創(chuàng)建匿名函數(shù)竿开。
- lambda只是一個(gè)表達(dá)式谱仪,函數(shù)體比def簡單很多。
- lambda的主體是一個(gè)表達(dá)式否彩,而不是一個(gè)代碼塊疯攒。僅僅能在lambda表達(dá)式中封裝有限的邏輯進(jìn)去。
- lambda函數(shù)擁有自己的命名空間列荔,且不能訪問自有參數(shù)列表之外或全局命名空間里的參數(shù)敬尺。
- 雖然lambda函數(shù)看起來只能寫一行枚尼,卻不等同于C或C++的內(nèi)聯(lián)函數(shù),后者的目的是調(diào)用小函數(shù)時(shí)不占用棧內(nèi)存從而增加運(yùn)行效率砂吞。
如下實(shí)例:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 可寫函數(shù)說明
sum = lambda arg1, arg2: arg1 + arg2;
# 調(diào)用sum函數(shù)
print "相加后的值為 : ", sum( 10, 20 )
print "相加后的值為 : ", sum( 20, 20 )
以上實(shí)例輸出結(jié)果:
相加后的值為 : 30
相加后的值為 : 40