重走py 之路 ——普通操做與函數(三)

前言

本節主要介紹函數,可是函數是由操做組成的。那麼就分爲兩部,一部分爲操做一部分爲函數。數組

正文

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 類和模塊

相關文章
相關標籤/搜索