前言
本節主要介紹函數,但是函數是由操作組成的。那麼就分爲兩部,一部分爲操作一部分爲函數。
正文
py世界中的操作。
操作
if:
在學習任何一門語言中,關係if,要關係另外一件事,那就是if是否只能判斷bool,還是可以判斷其他的,比如說1或者0。
if 1:
print("good");
輸出:good.
看了py 中if是對bool進行擴展了。
再來看:
if "":
print("good");
if "123":
print("123good");
輸出:"123good"
看了其對空字符的是一個false狀態
if None:
print("none");
沒有任何輸出,那麼其對None 是false狀態,在這裏說明一下py中沒有Null,只有None。
那麼看下其對列表和集合的態度是怎麼樣的。
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 類和模塊