第一天學習了Python的基本操作,以及幾種主要的容器類型,今天學習python的函數、循環和條件、類,這樣纔算對Python有一個大致的瞭解。今天的學習大綱如下:
三、函數
1、定義函數
四、循環與條件
1、if語句
2、while true/break語句
3、for語句
4、列表推導式
五、類
1、閒說類與對象
2、定義一個類
¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
三,函數
1、定義函數
(1)定義規則
介紹列表方法的時候已經大概說過函數,學過數學的人都知道函數,給一個參數返回一個值。函數也可以自己定義。用如下的格式:
def 函數名(參數): 輸入函數代碼
函數代碼中,return表示返回的值。比如定義一個平方函數square(x),輸入參數x,返回x的平方:
def square(x):return x*x
square(9)
(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語句
也是注意一是縮進,二是條件後面有冒號:
j=2.67
if j<3:
print 'j<3'
對於多條件,注意的是elseif要寫成elif,標準格式爲:
if 條件1:
執行語句1
elif 條件2:
執行語句2
else:
執行語句3
注意if…elif…else三個是並列的,不能有縮進:
t=3
if t<3:
print 't<3'
elif t==3:
print 't=3'
else:
print 't>3'
2、while true/break語句
該語句的格式爲
while true即條件爲真:
執行語句
if中斷語句條件 : break
看個例子:
a=3
while a<10:
a=a+1
print a
if a==8: break
雖然while後面的條件是a<10,即a小於10的時候一直執行,但是if條件中規定了a爲8時就break掉,因此,輸出只能輸到8。
3、for語句
不多說了,可以遍歷一個序列/字典等。
a=[1,2,3,4,5]
for i in a:
print i
5、列表推導式:輕量級循環
列表推導式,是利用其它列表來創建一個新列表的方法,工作方式類似於for循環,格式爲:
[輸出值 for 條件]
當滿足條件時,輸出一個值,最終形成一個列表:
[x*x for x in range(10)]
[x*x for x in range(10) if x%3==0]
如上的例子就是利用序列[0,1,2,3,4,5,6,7,8,9],生成了一個新的序列。
六、類¶
作爲第二天的Python學習,先對類有一個大致的印象吧。
1、閒說類與對象 類是一個抽象的概念,它不存在於現實中的時間/空間裏,類只是爲所有的對象定義了抽象的屬性與行爲。就好像“Person(人)”這個類,它雖然可以包含很多個體,但它本身不存在於現實世界上。
而對象,是類的一個具體。它是一個實實在在存在的東西。如果上面說的“人”是一個抽象的類,那麼你自己,就是這個類裏一個具體的對象。
一個類的對象,也叫一個類的實例。再打個比方,類好比一個模具,對象就是用這個模具造出來的具有相同屬性和方法的具體事物,俗話說:“他倆真像,好像一個模子刻出來的”,就是指的這個意思。 那麼用這個模具造一個具體事物,就叫類的實例化。下面看一個具體的類:
2、定義一個類
class boy:
gender='male'
interest='girl'
def say(self):
return 'i am a boy'
上面的語句定義了一個類boy,我們來根據這兒類的模型構造一個具體的對象:
peter=boy()
現在來看看peter這個具體的實例有哪些屬性和方法。
“什麼叫屬性和方法?”
它們都是“類”的兩種表現,靜態的叫屬性,動態的叫方法。比如“人”類的屬性有姓名、性別、身高、年齡、體重等等,“人”類的方法有走、跑、跳等等。
peter.gender
peter.interest
peter.say()
這裏gender和interest是peter的屬性,而say是他的方法。如果再實例化另一個對象比如sam:
sam=boy()
那麼sam和peter有一樣的屬性和方法,可以說,“他們真是一個模子刻出來的!”