大資料基礎----Python入門
Python入門
一、基礎語法
1、Python中資料型別
整數,浮點數,字串,布林值,空值(None)
2、print語句
注意:
1.當我們在Python互動式環境下編寫程式碼時,>>>是Python直譯器的提示符,不是程式碼的一部分。
2.當我們在文字編輯器中編寫程式碼時,千萬不要自己新增 >>>。
print語句也可以跟上多個字串,用逗號“,”隔開,就可以連成一串輸出。print會依次列印每個字串,遇到逗號“,”會輸出一個空格。
3、註釋
Python的註釋以 # 開頭,後面的文字直到行尾都算註釋。
多行註釋是用三引號''' '''。
4、變數
變數是用一個變數名錶示,變數名必須是大小寫英文、數字和下劃線(_)的組合,且不能用數字開頭。
5、字串
(1)字串可以用''或者""括起來表示。
注意:
如果字串包含",我們就可以用' '括起來。
同理,如果字串包含',我們就可以用""括起來.
如果字串既包含'又包含",對字串的某些特殊字元進行“轉義”,Python字串用\進行轉義。
如:
#LiMing said ”I’m a gay”!應表示為
LiMing said /”I/’m a gay/”!
(2) raw字串與多行字串
raw字串裡面的字元不需要轉義,r’…’表示單行字元,r’’’…’’’表多行。
6、Unicode
Unicode把所有語言都統一到一套編碼裡,這樣就不會再有亂碼問題了。
Unicode通常用兩個位元組表示一個字元,原有的英文編碼從單位元組變成雙位元組,只需要把高位元組全部填為0就可以。
print u'中文'
#多行
u'''第一行
第二行'''
raw+多行:
ur'''Python的Unicode字串支援"中文",
"日文",
"韓文"等多種語言'''
二、list
(1)list是一種有序的集合,可以隨時新增和刪除其中的元素。 用[ ] 把list的所有元素都括起來,就是一個list物件。
(2)按索引訪問list(類似於陣列)。
(3)倒序訪問list. 例如:
L = [95.5, 85, 59]
print L[-1] #輸出59
print L[-2] #輸出85
print L[-3] #輸出95.5
(4)新增元素。append()總是把新的元素新增到 list 的尾部。 insert()方法,它接受兩個引數,第一個引數是索引號,第二個引數是待新增的新元素。
(5)刪除元素。pop()方法會返回被刪除的元素。
三、tuple
(1)tuple是另一種有序的列表,中文翻譯為“ 元組 ”。tuple 和 list 非常類似,但是,tuple一旦建立完畢,就不能修改了。建立tuple和建立list唯一不同之處是用( )替代了[ ]。獲取 tuple 元素的方式和 list 是一模一樣的。
(2)建立單元素tuple。t = (1,)
四、if語句,for迴圈,while迴圈
注意縮排,4個空格。例如:
(1)
if score>60:
print 'passed'
#if-elif-else
if age >= 18:
print 'adult'
elif age >= 6:
print 'teenager'
elif age >= 3:
print 'kid'
else:
print 'baby'
(2)for迴圈
L = ['Adam', 'Lisa', 'Bart']
for name in L:
print name
(3)while迴圈
N = 10
x = 0
while x < N:
print x
x = x + 1
(4)使用break跳出迴圈,continue繼續迴圈。
五、dict集合(key:value)
dict的作用是建立一組 key 和一組 value 的對映關係,dict的key是不能重複的。
例如:
d = {
'Adam': 95,
'Lisa': 85,
'Bart': 59
}
擴充:len()可以計算任何集合的大小。
(1)訪問dict.可使用 d[key] 的形式來查詢對應的 value。
注意: 通過 key 訪問 dict 的value,只要 key 存在,dict就返回對應的value。如果key不存在,會直接報錯:KeyError。
要避免 KeyError 發生,有兩個辦法:
一是先判斷一下 key 是否存在,用 in 操作符。
二是使用dict本身提供的一個 get 方法,在Key不存在的時候,返回None
(2)dict的特點
dict的第一個特點是查詢速度快,dict的第二個特點就是儲存的key-value序對是沒有順序的,dict的第三個特點是作為 key 的元素必須不可變,所以list不能作為key。
(3)遍歷dict 例如:
for key in d:
... print key
六、set
set 持有一系列元素,這一點和 list 很像,但是set的元素不重複,而且是無序的,這點和 dict 的 key很像。
(1)建立 set 的方式是呼叫 set() 並傳入一個 list,list的元素將作為set的元素:
>>> s = set(['A', 'B', 'C'])
(2)set的特點
set的內部結構和dict很像,唯一區別是不儲存value。
set儲存的元素和dict的key類似,必須是不變物件。
(3)遍歷set 例如:
s = set(['Adam', 'Lisa', 'Bart'])
>>> for name in s:
... print name
(4)更新set
新增元素時,用set的add()方法:
如果新增的元素已經存在於set中,add()不會報錯,但是不會加進去了:
刪除set中的元素時,用set的remove()方法:
如果刪除的元素不存在set中,remove()會報錯。
六、函式
可以直接從Python的官方網站檢視文件:
http://docs.python.org/2/library/functions.html#abs
也可以在互動式命令列通過 help(abs) 檢視abs函式的幫助資訊。
(1)編寫函式
定義一個函式要使用 def 語句,依次寫出函式名、括號、括號中的引數和冒號:,然後,在縮排塊中編寫函式體,函式的返回值用 return 語句返回。return None可以簡寫為return。Python的函式返回多值其實就是返回一個tuple。
(2)遞迴函式
例:
漢諾塔問題
函式 move(n, a, b, c) 的定義是將 n 個圓盤從 a 藉助 b 移動到 c。
參考程式碼:
def move(n, a, b, c):
if n ==1:
print a, '-->', c
return
move(n-1, a, c, b)
print a, '-->', c
move(n-1, b, a, c)
(3)預設引數
例如: int() 函式,其實就有兩個引數,我們既可以傳一個引數,又可以傳兩個引數:
int()函式的第二個引數是轉換進位制,如果不傳,預設是十進位制 (base=10),如果傳了,就用傳入的引數。
(4)可變引數
可變引數的名字前面有個 * 號,我們可以傳入0個、1個或多個引數給可變引數。Python直譯器會把傳入的一組引數組裝成一個tuple傳遞給可變引數。
七、對list切片
(1)['Adam', 'Lisa', 'Bart', 'Paul']
L[0:3]或L[:3]表示,從索引0開始取,直到索引3為止,但不包括索引3。所以結果為['Adam', 'Lisa', 'Bart']
L[:]表示從頭到尾,L[:]實際上覆製出了一個新list。
切片操作還可以指定第三個引數:
>>> L[::2]
['Adam', 'Bart']
第三個參數列示每N個取一個,上面的 L[::2] 會每兩個元素取出一個來,也就是隔一個取一個。
把list換成tuple,切片操作完全相同,只是切片的結果也變成了tuple。
(2)倒序切片
>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']
>>> L[-2:]
['Bart', 'Paul']
>>> L[:-2]
['Adam', 'Lisa']
>>> L[-3:-1]
['Lisa', 'Bart']
>>> L[-4:-1:2]
['Adam', 'Bart']
(3)對字串切片
字串 'xxx'和 Unicode字串 u'xxx'也可以看成是一種list,每個元素就是一個字元。因此,字串也可以用切片操作,只是操作結果仍是字串。
**注:
- 有序集合:list,tuple,str和unicode;
- 無序集合:set
- 無序集合並且具有 key-value 對:dict**
八、迭代
(1)索引迭代
>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']
>>> for index, name in enumerate(L):
... print index, '-', name
...
0 - Adam
1 - Lisa
2 - Bart
3 - Paul
enumerate() 函式自動把每個元素變成 (index, element) 這樣的tuple,再迭代,就同時獲得了索引和元素本身。
(2)迭代dict的value
- values() 方法實際上把一個 dict 轉換成了包含 value 的list。
- 但是 itervalues() 方法不會轉換,它會在迭代過程中依次從 dict 中取出 value,所以 itervalues() 方法比 values() 方法節省了生成 list 所需的記憶體。
(3)迭代dict的key和value
items() 方法把dict物件轉換成了包含tuple的list。
iteritems() 不把dict轉換成list,而是在迭代過程中不斷給出 tuple,所以, iteritems() 不佔用額外的記憶體。
九、列表
(1)生成列表
方法一是迴圈:
>>> L = []
>>> for x in range(1, 11):
... L.append(x * x)
...
>>> L
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
但是迴圈太繁瑣,而列表生成式則可以用一行語句代替迴圈生成上面的list:
>>> [x * x for x in range(1, 11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
(2)複雜表示式
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
在生成的表格中,對於沒有及格的同學,請把分數標記為紅色。
提示:紅色可以用 <td style="color:red"> 實現。
如果我們用一個函式來替換字串的格式化程式碼,可以得到更清晰的程式碼:
def generate_tr(name, score):
return '<tr><td>%s</td><td>%s</td></tr>' % (name, score)
tds = [generate_tr(name, score) for name, score in d.iteritems()]
這樣,只需要修改 generate_tr() 函式,必要的時候把score標紅。
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
def generate_tr(name, score):
if score < 60:
return '<tr><td>%s</td><td style="color:red">%s</td></tr>' % (name, score)
return '<tr><td>%s</td><td>%s</td></tr>' % (name, score)
tds = [generate_tr(name, score) for name, score in d.iteritems()]
print '<table border="1">'
print '<tr><th>Name</th><th>Score</th><tr>'
print '\n'.join(tds)
print '</table>'
(3)條件過濾 例如:
def toUppers(L):
return [s.upper() for s in L if isinstance(s,str) ] #isinstance(x, str) 可以判斷變數 x 是否是字串;
print toUppers(['Hello', 'world', 101]) #輸出[‘HELLO’,’WORLD’]
相關文章
- 大資料入門:Hadoop Yarn元件基礎解析大資料HadoopYarn元件
- 大資料學習:零基礎大資料入門該看哪些書?大資料
- 教你零基礎如何快速入門大資料技巧大資料
- 大資料分析入門基礎知識學什麼?大資料
- 大資料零基礎由入門到實戰大資料
- Python基礎入門(2)- python中的資料型別Python資料型別
- 入門大資料行業!必備的十大基礎大資料行業
- hadoop大資料平臺安全基礎知識入門Hadoop大資料
- 大學剛畢業,零基礎大資料如何入門?大資料
- 大資料零基礎入門需要多長時間?大資料
- 大資料系列零基礎由入門到實戰大資料
- 機器學習入門基礎大綱機器學習
- Python入門基礎(8)Python
- 資料分析 | 零基礎入門資料分析(一):從入門到摔門?
- 有基礎學習大資料開發好不好入門大資料
- 【總結】10大Python庫介紹!Python基礎入門Python
- 資料管理流程,基礎入門簡介
- 爬蟲入門基礎-Python爬蟲Python
- Python入門基礎(3 下)Python
- Python基礎:分分鐘入門Python
- Python Flask基礎教程(入門)PythonFlask
- 入門大資料開發行業!必備的十大基礎大資料行業
- 0基礎入門python,BAT大廠技術專家,三天帶你入門資料視覺化專案PythonBAT視覺化
- 零基礎入門學習大資料可以從事哪些工作?大資料
- Python爬蟲五大零基礎入門教程Python爬蟲
- 大資料入門大資料
- 資料視覺化-svg入門基礎(二)視覺化SVG
- 零基礎入門大資料學習,如何才能系統的學好大資料大資料
- Python基礎知識入門(二)Python
- Python基礎入門筆記(二)Python筆記
- python入門(需要C++基礎)PythonC++
- Python入門基礎–猜年齡Python
- 0基礎7日入門PythonPython
- Python基礎入門筆記(一)Python筆記
- Python入門基礎知識(二)Python
- Python Django基礎教程(一)(入門)PythonDjango
- Python入門必知的知識點!Python基礎入門Python
- 大話 資料入門