本節主要介紹函數,可是函數是由操做組成的。那麼就分爲兩部,一部分爲操做一部分爲函數。數組
py世界中的操做。函數
if:學習
在學習任何一門語言中,關係if,要關係另一件事,那就是if是否只能判斷bool,仍是能夠判斷其餘的,好比說1或者0。code
if 1: print("good");
輸出:good.blog
看了py 中if是對bool進行擴展了。input
再來看:string
if "": print("good"); if "123": print("123good");
輸出:"123good"
看了其對空字符的是一個false狀態團隊協作
if None: print("none");
沒有任何輸出,那麼其對None 是false狀態,在這裏說明一下py中沒有Null,只有None。ast
那麼看下其對列表和集合的態度是怎麼樣的。擴展
list=[] a={}; if list: print("not none"); else: print("none") if a: print("not none"); else: print("none")
返回兩個none,說明其還會根據len來作判斷,很是友好的一個東西。
那麼在if中或和且是不是咱們原來熟悉的&&還有||呢?
在這裏說明一下,py的語義化太好了,直接使用and 和or 來講明。
好比說:
list=[] if 'good' in list: print("have good"); elif ('not good' in list or 'sleep' in list) and 'name' in list: print("not good");
上面能夠看出else if 用elif來替代。list是否包含某個字符,能夠直接用in來操做。
輸入:
在前面和上續中,有不少print,也就是輸出,那麼如何輸入呢?
name = input("please say your name:"); print(name);
輸入和輸出:
please say your name:11 11
在這裏說明一點,就是上面name的等於號,必定要有空格,這個py的規範,不然將會出現異常。
其餘一些操做:
while 和其餘語言同樣,可是得記得while後面加:,例如:
while true: pass
在不少語言中,函數都是很是關鍵的東西,由於你不可能一行寫到尾。
def printName(firstName,lastName): print("firstName:"+firstName+"lastName:"+lastName); printName("firstName","lastName");
輸出:firstName:firstNamelastName:lastName
那麼學了這麼多語言,要思考的問題是py到底能不能設置參數默認值,或者能不能顯示傳參。
def printName(firstName,lastName): print("firstName:"+firstName+"lastName:"+lastName); printName(firstName="firstName",lastName="lastName");
事實證實是能夠顯示傳參的,一樣也是能夠有默認值的。
def printName(firstName,lastName="tom"): print("firstName:"+firstName+"lastName:"+lastName); printName(firstName="firstName");
這樣就能夠。如今咱們發現一個問題,那就是printName 在調用的時候沒有信息,那麼咱們須要加上註釋:
def printName(firstName,lastName="tom"): """ printName 輸出名字 args: firstName string lastName string return: none """ print("firstName:"+firstName+"lastName:"+lastName); printName(firstName="firstName");
那麼看下什麼效果:
是的,這樣對於團隊協做來講好太多了。
一樣函數值得關注的還有是否能夠傳遞任意數量的實參。
def printName(*name): """ printName say name args: firstName string lastName string return: none """ print("firstName:"+name[0]+"lastName:"+name[1]); printName("firstName","lastname");
這樣彷佛就能夠了,*name,表示創建一個元組,傳遞任意的參數將會組成一個元組。
那麼任意數量的實參是否是隻能是數組呢?若是你在加一個*的話,那麼你能夠傳遞字典。
def printName(**name): """ printName say name args: firstName string lastName string return: none """ print(name); printName(firstName="firstName",lastname="lastname");
輸出:{'lastname': 'lastname', 'firstName': 'firstName'}
next 類和模塊