python學習筆記:Python的基本頁面、操作以及幾種主要的容器類型

人生苦短,我用python

不用懷疑,懷疑會被淘汰。

1)基本的輸入輸出

可以在Python中使用+、-、*、/直接進行四則運算。

1+3*3


10

(2)導入模塊

使用import可以導入模塊,導入之後,就可以使用這個模塊下面的函數了。

比如導入math模塊,然後使用math模塊下面的sqrt函數:

import math

math.sqrt(9)


3.0

這時我有疑問了:

「每次引用函數的時候,math這個模塊前綴都要帶嗎?可不可以不帶?」

直接輸入sqrt(9)是會報錯的,好煩人,那麼有什麼辦法可以不用每次都帶前綴?辦法是有的,用「from 模塊 import 函數」的格式先把函數給「拿」出來。

from math import sqrt

Advertisements

sqrt(9)


3.0

這樣每次使用sqrt函數的時候就不用再加math前綴了。當我正準備跳過的時候,又有了一個問題?

「math模塊下面有那麼多函數,可不可以寫一個語句,然後math下面所有函數都可以直接使用?」

調用了math下面的sqrt函數,寫一個from…import…,再調用下面的floor,還要寫一個,如此也挺麻煩的,有個辦法可以一下把所有函數都給「拿」出來:

from math import *

print sqrt(9)

print floor(32.9)


3.0

32.0

二,容器

1,什麼是容器

開始學Python時,被它的數據結構,什麼字典、序列、元組等等搞的很混亂,估計有跟我一樣的初學者,所以我梳理了一下留存:

Advertisements

首先要從容器說起,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]


6

b=(1,3,6,10)

b[2]


6

c='hello'

c[0:3]


'hel'

而與序列對應的「字典」則不一樣,它是一個無序的容器,

它的基本形式比如:d={7:'seven',8:'eight',9:'nine'}

這是一個「鍵—值」映射的結構,因此字典不能通過索引來訪問其中的元素,而要根據鍵來訪問其中的元素:

d={7:'seven',8:'eight',9:'nine'}

d[8]


'eight'

2、序列的一些通用操作

除了上面說到的索引,列表、元組、字元串等這些序列還有一些共同的操作。

(1)索引(補充上面)

序列的最後一個元素的索引,也可以是-1,倒數第二個也可以用-2,依次類推

a=[1,3,6,10]

print a[3]

print a[-1]

10

10

(2)分片

使用分片操作來訪問一定範圍內的元素,它的格式為:

a[開始索引:結束索引:步長]

那麼訪問的是,從開始索引號的那個元素,到結束索引號-1的那個元素,每間隔步長個元素訪問一次,步長可以忽略,默認步長為1。

c='hello'

c[0:3]


'hel'

這個就好像把一個序列給分成幾片幾片的,所以叫做「分片」

(3)序列相加

即兩種序列合併在一起,兩種相同類型的序列才能相加

[1,2,3]+[4,5,6]


[1, 2, 3, 4, 5, 6]

'hello,'+'world!'


'hello,world!'

(4)成員資格

為了檢查一個值是否在序列中,可以用in運算符

a='hello'

print 'o' in a

print 't' in a


True

False

3、列表操作

以上是序列共有的一些操作,列表也有一些自己獨有的操作,這是其他序列所沒有的

(1)List函數

可以通過list(序列)函數把一個序列轉換成一個列表:

list('hello')


['h', 'e', 'l', 'l', 'o']

(2)元素賦值、刪除

元素刪除——del a[索引號]

元素賦值——a[索引號]=值

a


'hello'

b=list(a)

b


['h', 'e', 'l', 'l', 'o']

del b[2]

b


['h', 'e', 'l', 'o']

b[2]='t'

b


['h', 'e', 't', 'o']

分片賦值——a[開始索引號:結束索引號]=list(值)

為列表的某一範圍內的元素賦值,即在開始索引號到結束索引號-1的區間幾個元素賦值,比如,利用上面語句,如何把hello變成heyyo?

b=list('hello')

b


['h', 'e', 'l', 'l', 'o']

b[2:4]=list('yy')

b


['h', 'e', 'y', 'y', 'o']

注意雖然「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


['h', 'e', 'l', 'l', 'o']

給列表a的n索引位置插入一個元素m: a.insert(n,m)

a.insert(2,'t')

a


['h', 'e', 't', 'l', 'l', 'o']

給列表的最後添加元素m: a.append(m)

a.append('q')

a


['h', 'e', 't', 'l', 'l', 'o', 'q']

返回a列表中,元素m第一次出現的索引位置: a.index(m)

a.index('e')

刪除a中的第一個m元素: a.remove(m)

a.remove('e')

a


['h', 't', 'l', 'l', 'o', 'q']

將列表a從大到小排列: a.sort()

a.sort()

a


['h', 'l', 'l', 'o', 'q', 't']

4、字典操作

(1)dict函數

dict函數可以通過關鍵字參數來創建字典,格式為:

dict(參數1=值1,參數2=值2, …)={參數1:值1, 參數2=值2, …}

比如,如何創建一個名字name為jiayounet,年齡age為28的字典?

dict(name='jiayounet',age=27)


{'age': 27, 'name': 'jiayounet'}

(2)基本操作

字典的基本行為與列表在很多地方都相似,下面的例子以序列a=[1,3,6,10],字典f={'age': 27, 'name': 'shushuo'}為例

日記小結:

今天學習了Python的基本頁面、操作,以及幾種主要的容器類型,明天還要學習Python的函數、循環和條件、類,然後才算是對Python有一個大致的了解。

Advertisements

你可能會喜歡