“誰來給我講講Python?”
作爲無基礎的初學者,只想先大概瞭解一下Python,隨便編個小程序,並能看懂一般的程序,那些什麼JAVA啊、C啊、繼承啊、異常啊通通不懂怎麼辦,於是我找了很多資料,寫成下面這篇日記,希望以完全初學者的角度入手來認識Python這個在量化領域日益重要的語言。
python基本頁面、操作,以及幾種主要的容器類型。
一,熟悉基本
在正式介紹python之前,瞭解下面兩個基本操作對後面的學習是有好處的:
1)基本的輸入輸出 可以在Python中使用+、-、*、/直接進行四則運算。
1+3*3
(2)導入模塊 使用import可以導入模塊,導入之後,就可以使用這個模塊下面的函數了。 比如導入math模塊,然後使用math模塊下面的sqrt函數:
import math
math.sqrt(9)
這時我有疑問了:
“每次引用函數的時候,math這個模塊前綴都要帶嗎?可不可以不帶?”
直接輸入sqrt(9)是會報錯的,好煩人,那麼有什麼辦法可以不用每次都帶前綴?辦法是有的,用“from 模塊 import 函數”的格式先把函數給“拿”出來。
from math import sqrt
sqrt(9)
這樣每次使用sqrt函數的時候就不用再加math前綴了。當我正準備跳過的時候,又有了一個問題?
“math模塊下面有那麼多函數,可不可以寫一個語句,然後math下面所有函數都可以直接使用?”
調用了math下面的sqrt函數,寫一個from…import…,再調用下面的floor,還要寫一個,如此也挺麻煩的,有個辦法可以一下把所有函數都給“拿”出來:
from math import *
print sqrt(9)
print floor(32.9)
二,容器
1,什麼是容器
開始學Python時,被它的數據結構,什麼字典、序列、元組等等搞的很混亂,估計有跟我一樣的初學者,所以我梳理了一下留存: 首先要從容器說起,Python中有一種名爲容器的數據結構,顧名思義,容器,就是裝數據的器具,它主要包括序列和詞典,其中序列又主要包括列表、元組、字符串等(見下面那張圖)。
列表的基本形式比如:[1,3,6,10]或者[‘yes’,’no’,’OK’]
元組的基本形式比如:(1,3,6,10)或者(‘yes’,’no’,’OK’)
字符串的基本形式比如:’hello’
以上幾種屬於序列,序列中的每一個元素都被分配一個序號——即元素的位置,也稱爲“索引”,第一個索引,即第一個元素的位置是0,第二個是1,依次類推。列表和元組的區別主要在於,列表可以修改,而元組不能(注意列表用中括號而元組用括號)。序列的這個特點,使得我們可以利用索引來訪問序列中的某個或某幾個元素,比如:
a=[1,3,6,10]
a[2]
b=(1,3,6,10)
b[2]
c='hello'
c[0:3]
而與序列對應的“字典”則不一樣,它是一個無序的容器,
它的基本形式比如:d={7:'seven',8:'eight',9:'nine'}
這是一個“鍵—值”映射的結構,因此字典不能通過索引來訪問其中的元素,而要根據鍵來訪問其中的元素:
d={7:'seven',8:'eight',9:'nine'}
d[8]
2、序列的一些通用操作
除了上面說到的索引,列表、元組、字符串等這些序列還有一些共同的操作。
(1)索引(補充上面)
序列的最後一個元素的索引,也可以是-1,倒數第二個也可以用-2,依次類推:
a=[1,3,6,10]
print a[3]
print a[-1]
(2)分片
使用分片操作來訪問一定範圍內的元素,它的格式爲:
a[開始索引:結束索引:步長]
那麼訪問的是,從開始索引號的那個元素,到結束索引號-1的那個元素,每間隔步長個元素訪問一次,步長可以忽略,默認步長爲1。
c='hello'
c[0:3]
這個就好像把一個序列給分成幾片幾片的,所以叫做“分片”
(3)序列相加
即兩種序列合併在一起,兩種相同類型的序列才能相加
[1,2,3]+[4,5,6]
'hello,'+'world!'
(4)成員資格
爲了檢查一個值是否在序列中,可以用in運算符
a='hello'
print 'o' in a
print 't' in a
3、列表操作
以上是序列共有的一些操作,列表也有一些自己獨有的操作,這是其他序列所沒有的
(1)List函數
可以通過list(序列)函數把一個序列轉換成一個列表:
list('hello')
(2)元素賦值、刪除
元素刪除——del a[索引號]
元素賦值——a[索引號]=值
a
b=list(a)
b
del b[2]
b
b[2]='t'
b
分片賦值——a[開始索引號:結束索引號]=list(值)
爲列表的某一範圍內的元素賦值,即在開始索引號到結束索引號-1的區間幾個元素賦值,比如,利用上面語句,如何把hello變成heyyo?
b=list('hello')
b
b[2:4]=list('yy')
b
注意雖然“ll”處於“hello”這個單詞的第2、3號索引的位置,但賦值時是用b[2:4]而不是b[2:3],另外注意list()用小括號。
(3)列表方法
上面說過list函數,函數這個東西在很多語言中都有,比如excel裏面的if函數、vlookup函數,SQL裏面的count函數,以及各種語言中都有的sqrt函數等等,python中也有很多函數。 Python中的方法,是一個“與某些對象有緊密聯繫的”函數,所以列表方法,就是屬於列表的函數,它可以對列表實現一些比較深入的操作,方法這樣調用:
對象.方法(參數)
那麼列表方法的調用就理所當然是:
列表.方法(參數)
常用的列表方法這麼幾個,以a=['h','e','l','l','o']爲例:
a=['h','e','l','l','o']
a
給列表a的n索引位置插入一個元素m: a.insert(n,m)
a.insert(2,'t')
a
給列表的最後添加元素m: a.append(m)
a.append('q')
a
返回a列表中,元素m第一次出現的索引位置: a.index(m)
a.index('e')
刪除a中的第一個m元素: a.remove(m)
a.remove('e')
a
將列表a從大到小排列: a.sort()
a.sort()
a
4、字典操作
(1)dict函數
dict函數可以通過關鍵字參數來創建字典,格式爲:
dict(參數1=值1,參數2=值2, …)={參數1:值1, 參數2=值2, …}
比如,如何創建一個名字name爲jiayounet,年齡age爲28的字典?
dict(name='jiayounet',age=27)
(2)基本操作
字典的基本行爲與列表在很多地方都相似,下面的例子以序列a=[1,3,6,10],字典f={'age': 27, 'name': 'shushuo'}爲例
日記小結: 今天學習了Python的基本頁面、操作,以及幾種主要的容器類型,天還要學習Python的函數、循環和條件、類,然後纔算是對Python有一個大致的瞭解。