Python筆記(二)

來源:互聯網
上載者:User

標籤:

  在昨天學習Python之後,感覺它的的確確挺簡潔,也挺容易學習。在昨天的學習中我們瞭解到了Python中while迴圈語句以及if...else語句的使用,while語句的使用格式是這樣的:while express :,切記不要忘記冒號。if語句和while語句的使用類似。今天我們首先接著昨天的學習,瞭解Python中的for迴圈,break語句以及continue語句,之後再簡單接觸一下函數的使用。廢話不多說,我覺得對編程語句的學習最好是對照代碼來學習,所以我們先來看下面一段代碼:

1 for i in range(1,10,2):        #for迴圈的使用格式2     print (i)3     if i == 7 :4         break5 else:6     print ("The for loop is over!") #這句話在for迴圈結束時列印,除非遇到break

  在上面代碼的第一行中,我們使用中看到了for迴圈的使用。格式為:for .. in..:先解釋一下代碼第一行的作用:我們聲明了一個變數i,他的取值由rang()函數決定,上面表示i從1開始到10結束,其步長為2,但是不包括10。這就有點類似我們在JAVA中這樣使用for迴圈: 1 for(int i = 1;i < 10;i+=2) 。然後進入迴圈體,列印出每個i值,但是當i=7的時候,就跳出迴圈。這裡有一點需要注意的是,如果你從for或者while迴圈中終止,那麼任何對應的迴圈else塊將不會被執行,也就是說,當跳出迴圈後,第六行將不會被執行。結果如下:

  如果我們將第3,4行使用#注釋掉,那麼結果如下:

  除了要記住上面所說的遇到break語句所產生的不同結果之外,還應該記住,else部分是可選的,如果包含else語句,那麼它總是在迴圈結束執行一次。下面再來看看continue語句,Python中的continue語句和其他語言中(比如JAVA,C....)的continue語句作用是一樣的,所以很好理解。它的作用就是跳過當前迴圈塊中剩餘的語句,然後繼續執行下一輪迴圈。請看下面代碼:

1 while True :2     s = input(‘‘‘Enter something : ‘‘‘)3     if s == ‘q‘:4         break5     if len(s) < 3:6         print("string length too short.try again.")7         continue8     print ("The string length is :",len(s))    #len()用來求出s的長度9 print ("Done!")

  在上面代碼中,提示使用者鍵入一些東西,如果鍵入字元‘q‘,那麼將會跳出迴圈,如果不是,那麼將判斷使用者鍵入的字串長度,如果長度小於3,使用者會得到提示,並結束本次迴圈,不會列印出字串的長度,如果長度大於3,那麼使用者會得到字串的長度。運行結果如下:

  到此我們已經瞭解了Python中三種控制流程:if,while,for,以及與它們相關的break和continue語句。它們不僅在其他語言中需要熟練掌握,而且在Python中需要熟練掌握的。不需要死記硬背,和你之前熟悉的任何一門語言關聯記憶,記住不同之處就很好掌握了。

  下面我們來開始瞭解Python中的函數。在Python中定義一個函數使用關鍵字def,後面跟一個函數名,然後一對圓括弧,括弧中可以有參數,然後以冒號結束。先上一段比較複雜的代碼,它的作用是將使用者輸入的十進位數轉為對應的二進位表示。如果不明白這個演算法的,可以參看我之前的一篇部落格《十進位轉二進位》。下面是Python代碼:

 1 #定義函數 2 def tobinary(number): 3     n = number % 2 4     if number >= 2: 5         tobinary(number >> 1) 6     out = chr(ord(‘0‘)+n) 7     #chr()將ascii碼轉為對應的字元 8     #ord()將字元轉為對應的ascii碼 9     print ("%c"%(out),end=‘‘)    #end控制列印間隔10     11 while True:12     s = input(‘‘‘Enter a number:(‘q‘ to quit)‘‘‘)13     if s == ‘q‘:14         break15     elif s.isdigit():16         tobinary(int(s))17     else:18         print ("your  input is not correct!")19     print(end = ‘\n‘)20     21 print (‘Game over !‘)

  在上面代碼第二行中我們使用關鍵字def定義了一個函數tobinary,它接收一個參數。函數的作用就是將這個參數位元列印輸出。關於chr()和ord()函數,以及print()中的end,請參看注釋。接下來進入while迴圈,我們判斷使用者輸入的是否為‘q‘,如果是,則退出程式。如果不是,我們再判斷使用者輸入的字串是否為數字(使用string中的isdigit()函數),如果是數字,那麼進入我們定義的函數,將其二進位表示列印。如果使用者輸入不是數字,則提示使用者輸入不合法。運行結果如下:

  上面的代碼示範了如何定義並使用函數。還是比較簡單。下面說說函數參數。在Python中,我們不僅使參數擁有預設值,也可以指定關鍵參數。所謂預設參數值,就是我們在調用該函數的時候,可以不對其賦值,而讓它使用我們設定的預設值。請看下面代碼:

1 def say(message,times = 1):2     print(message * times)3     4 say(‘hello,‘)5 say(‘hello,‘,5)

  上面的函數中,我們將times的預設值設定為1,在第四行調用函數的時候,我們沒有傳入times的值,所以Python會使用我們設定的預設值1,而在第五行,我們設定了times=5,執行結果如下:

  然而對於關鍵參數,指的是:假如我們定義的函數有多個參數,而我們只想指定其中一部分,那麼我們可以通過命名來為這些參數賦值。這樣做的好處是:我們不必擔心參數的順序,以及假設其他參數都用預設值,我們可以只給我們想要的參數賦值。請看下面一段代碼:

1 def func(a,b=5,c=10):2     print (‘a is ‘,a,‘ and b is ‘,b,‘ and c is ‘,c)3     4 func(3,7)5 func(25,c=24)6 func(c=20,a=100)

  上面的函數中,我們將b,c設定了預設值,a沒有設定。在代碼第4行,我們傳入了兩個參數,參數a將得到3,b將得到7,參數c使用預設值10;在代碼第5行中,根據實參的位置,變數a得到25,b使用預設值5,c得到24;第6行代碼中,我們使用關鍵參數來完全指定參數值,注意:儘管在函數定義中,a在c之前定義,我們仍然可以在a之前指定參數c的值。這就是關鍵參數指定。其運行結果如下:

  最後再說一說文檔字串docstrings。它可以使協助我們的程式文檔更加簡單易懂,所以應該盡量使用它。請看下面代碼:

 1 def printMax(x,y): 2     ‘‘‘Prints the maximum of two numbers. 3      4     The two values must be integers.‘‘‘ 5     x = int(x) 6     y = int(y) 7      8     if x > y : 9         print (x,‘is maximum‘)10     else:11         print (y,‘is maximum‘)12         13 printMax(10,20)14 print (printMax.__doc__)

  在上面函數的第一個邏輯行的字串就是這個函數的文檔字串。我們運行結果,可以得到以下結果:

  以上就是我今天所學的。歡迎各位博友多多指點。

Python筆記(二)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.