數據分析師的python日記[2]

第一天學習了Python的基本操作,以及幾種主要的容器類型,今天學習python的函數、循環和條件、類,這樣纔算對Python有一個大致的瞭解。今天的學習大綱如下:

三、函數

1、定義函數

四、循環與條件

1、if語句

2、while true/break語句

3、for語句

4、列表推導式

五、類

1、閒說類與對象

2、定義一個類

¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥

三,函數

1、定義函數

(1)定義規則

介紹列表方法的時候已經大概說過函數,學過數學的人都知道函數,給一個參數返回一個值。函數也可以自己定義。用如下的格式:

def 函數名(參數): 輸入函數代碼

函數代碼中,return表示返回的值。比如定義一個平方函數square(x),輸入參數x,返回x的平方:

In [14]:
def square(x):return x*x

square(9)
Out[14]:
81
 

(2)定義變參數函數

有時需要定義參數個數可變的函數,有幾個方法可以做到:

  • 給參數指定默認值

比如,定義參數f(a,b=1,c=’hehe’),那麼在調用的時候,後面兩個參數可以定義也可以不定義,不定義的話默認爲b=1,c=’hehe’,因此如下調用都可以:

F(‘dsds’);

F(‘dsds’,2);

F(‘dsds’,2,’hdasda’);

  • 參數關鍵字

上面的方法等於固定了參數的位置,第一個值就是第一個參數的賦值。而“參數關鍵字”方法,其實是固定了參數關鍵字,比如仍然定義參數 f(a,b=1,c=’hehe’),調用的時候可以用關鍵字來固定:

F(b=2,a=11)

位置可以動,只要參數關鍵指出來就可以了。

四、循環與條件

注意Python是用縮進來標識出哪一段屬於本循環。

1、if語句

也是注意一是縮進,二是條件後面有冒號:

In [15]:
j=2.67
if j<3:
    print 'j<3'
 
j<3
 

對於多條件,注意的是elseif要寫成elif,標準格式爲:

if 條件1:

 執行語句1

elif 條件2:

 執行語句2

else:

 執行語句3

注意if…elif…else三個是並列的,不能有縮進:

In [16]:
t=3
if t<3:
    print 't<3'
elif t==3:
    print 't=3'
else:
    print 't>3'
 
t=3
 

2、while true/break語句

該語句的格式爲

while true即條件爲真:

     執行語句
     if中斷語句條件 : break

看個例子:

In [17]:
a=3
while a<10:
    a=a+1
    print a
    if a==8: break
 
4
5
6
7
8
 

雖然while後面的條件是a<10,即a小於10的時候一直執行,但是if條件中規定了a爲8時就break掉,因此,輸出只能輸到8。

3、for語句

不多說了,可以遍歷一個序列/字典等。

In [18]:
a=[1,2,3,4,5]
for i in a:
    print i
 
1
2
3
4
5
 

5、列表推導式:輕量級循環

列表推導式,是利用其它列表來創建一個新列表的方法,工作方式類似於for循環,格式爲:

[輸出值 for 條件]

當滿足條件時,輸出一個值,最終形成一個列表:

In [19]:
[x*x for x in range(10)]
Out[19]:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
In [20]:
[x*x for x in range(10) if x%3==0]
Out[20]:
[0, 9, 36, 81]
 

如上的例子就是利用序列[0,1,2,3,4,5,6,7,8,9],生成了一個新的序列。

六、類

作爲第二天的Python學習,先對類有一個大致的印象吧。

1、閒說類與對象 類是一個抽象的概念,它不存在於現實中的時間/空間裏,類只是爲所有的對象定義了抽象的屬性與行爲。就好像“Person(人)”這個類,它雖然可以包含很多個體,但它本身不存在於現實世界上。

而對象,是類的一個具體。它是一個實實在在存在的東西。如果上面說的“人”是一個抽象的類,那麼你自己,就是這個類裏一個具體的對象。

一個類的對象,也叫一個類的實例。再打個比方,類好比一個模具,對象就是用這個模具造出來的具有相同屬性和方法的具體事物,俗話說:“他倆真像,好像一個模子刻出來的”,就是指的這個意思。 那麼用這個模具造一個具體事物,就叫類的實例化。下面看一個具體的類:

2、定義一個類

In [21]:
class boy:
    gender='male'
    interest='girl'
    def say(self):
        return 'i am a boy'
 

上面的語句定義了一個類boy,我們來根據這兒類的模型構造一個具體的對象:

In [22]:
peter=boy()
 

現在來看看peter這個具體的實例有哪些屬性和方法。

“什麼叫屬性和方法?”

它們都是“類”的兩種表現,靜態的叫屬性,動態的叫方法。比如“人”類的屬性有姓名、性別、身高、年齡、體重等等,“人”類的方法有走、跑、跳等等。

In [23]:
peter.gender
Out[23]:
'male'
In [24]:
peter.interest
Out[24]:
'girl'
In [25]:
peter.say()
Out[25]:
'i am a boy'
 

這裏gender和interest是peter的屬性,而say是他的方法。如果再實例化另一個對象比如sam:

In [26]:
sam=boy()
 

那麼sam和peter有一樣的屬性和方法,可以說,“他們真是一個模子刻出來的!”


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章