Python學習筆記(Ⅱ)——循環/選擇/函數


一.循環結構

python中提供了for循環和while循環兩種操作,沒有do……while語句。

1.for循環:

與其他語言中for循環的常見的寫法如for (int i=0;i<10;i++)不同,python中的for循環更加類似於foreach結構:

##舉例:遍歷輸出一個單詞的所有字母
for letter in 'Python':
  print('當前字母 :'+letter)

對比:

string str = "Python";
foreach(char c in str)
{
    Console.WriteLine("當前字母:"+c);       
}

我們有時候會涉及到針對數組、列表或字典的索引或下標的操作或判斷,在Python中提供了for i in range(開始索引,結束索引)的方式進行操作:

##舉例:輸出一個List的前3個字母
List = ["C#","Java","Python","C","C++"]
for i in range(0,2) ##注意索引下表是從0開始,這種寫法等價於for(int i=0;i<=2;i++)
    print(List[i])

在python3中,我們甚至可以使range以指定數字開始並指定不同的增量(甚至可以是負數,有時這也叫做'步長'):

如:for i in range(0, 10, 3) : print(i),這種寫法等價於for(int i=0;i<=10;i=i+3)

2.while循環:

基本語法如下:

while 判斷條件:
    循環語句

當判斷條件為永真條件時,while為無限循環,比較常見的是用來處理實時請求或其他循環操作:

while 1==1:
    ##循環語句

使用Crtl+C可以直接跳出循環

3.使用break與continue進行循環控制:

var = 10                   
while var > 0:              
   print ('當期變量值為 :', var)
   var = var -1
   if var == 5:
      break ##break直接跳出整個循環
 
print ("Good bye!")
var = 10                  
while var > 0:              
   var = var -1
   if var == 5:             # continue為跳過本次循環的剩余代碼,直接跳轉進入下一次循環
      continue
   print ('當前變量值 :', var)
print ("Good bye!")

 二.選擇結構:

python中沒有提供switch語句進行選擇結構的操作,再讓我哭會……

python中選擇結構的常見語法是if ...... elif ...... else

i=1
if i==1  ##注意一哈,后面是用空格分隔而不是()
    print("進入if分支")
elif i==2
    print("進入elif分支")
else 
    print("else分支")

PS:在python中,0和null表示false,其余表示true。

 

三.函數:

1.函數的定義:Python中的函數定義語法如下:

def 函數名(參數列表):
    函數體

函數以 def 關鍵詞開頭,后接函數名稱和圓括號 (),()中為這個函數的參數;以冒號起始,並且縮進

由於python弱化了變量以及變量類型的概念,因此函數體可以加retrun,也可以不加;不加return則類似於C語言中的void類型函數。

2.函數的調用與參數的傳遞:我們回到這段代碼:

## coding=utf-8
##冒泡排序與HelloWorld
def
BubbleSort(list):##定義一個函數 for i in range(len(list)): for j in range(i): if list[j] > list[j+1]: list[j],list[j+1] = list[j+1],list[j] return list if __name__ == "__main__":
  list = [8,1,2,66,5,123]
print("hello world") list = BubbleSort(list) ##調用函數BubbleSort並傳入參數list print(list)

在調用函數和傳參時,需要注意以下的幾個方面:

1.Python中提供了多個傳參的方式:

必需參數:須以正確的順序傳入函數。調用時的數量必須和聲明時的一樣:

def sub(a,b):
    return a-b

if __name__ == __"main"__:
    a=5,b=2
    c=sub(a,b)
    print(c) ##輸出結果為3

關鍵字參數:傳參時按照參數名=值的方式傳參,允許函數調用時參數的順序與聲明時不一致,使用參數名進行匹配:

def sub(a,b):
    return a-b

if __name__ == __"main"__:
    c=sub(b=2,a=5)##關鍵字參數,執行函數時會按照形參的參數名進行匹配,而非傳入參數的順序
    print(c) ##輸出結果為3

默認參數:函數的入參定義了默認參數后,調用函數時可以不傳入參數,此時函數執行時取默認參數進行處理:

def sub(a=5,b=2) ##默認參數,當不傳入參數時,a取5,b取2進行運算
    return a-b

if __name__ == __"main"__"
    c=sub
    print(c)##輸出結果為3

不定長參數:當函數無法確定入參的實際個數時,可以采用不定長參數的方式進行傳參,不定長參數定義時需要加*,用於存放所有未命名的參數,若沒有指定就是一個空元組;不定長參數不一定要傳入:

def printinfo( arg1, *vartuple ):
   "打印任何傳入的參數"
   print ("輸出: ")
   print (arg1)
   for var in vartuple:
      print (var)
   return

printinfo( 70, 60, 50 ) ##調用函數,傳入不定長的參數

PS:1.由於默認參數和不定長參數的存在,Python形式上不支持函數的重載,此外,python中函數參數變量是沒有類型的,當你調用傳值的時候才知道它到底是什么類型的變量。故對參數類型不同的函數根本無需考慮重載。

2.如果一個函數具有多個參數,調用時想指定其中的幾個,建議使用關鍵字參數進行傳參,降低報錯或異常的風險


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM