零基礎學Python--分支與循環以及函數

2020-12-13 Q量化

這篇文章我們將介紹Python的分支和循環語句的寫法,並對函數稍作介紹,而這一篇文章過後我們基本上的語法的東西就講完了。而我一貫的理念是,實踐是最好的老師。本片文章結束後,我們就可以開始使用Python進行各種編程了。

事實上,編程的過程其實是其樂無窮的。在經歷了十幾年的編程生涯之後,其實會發現編程仍然是最有樂趣的事情之一。一般國內的程式設計師在30歲之後就會開始思考,主要是國內的研發環境和國內的教育確實是讓我們有一些問題要去思考,比如是否仍然從事編程的工作。這點上我並不能給大家建議繼續編程,但是Python還是可以的。閒來無事,寫幾行代碼訓練個神經網絡模型,基本上都是機器幹活,我們的事情其實並不太多。

言歸正傳,我們來繼續今天的內容。

注意,由於排版的原因,我們用「----」來代替一個縮進。

分支

分支語句其實很簡單,比如我們腦海裡經常會有這樣的邏輯:如果今天不下雨,我就去打籃球,否則我就在家裡看電視。那麼這個例子寫成代碼就是這樣的:

if it_rains():

----go_play_basketball()

else:

----stay_home_watch_TV()

看,很簡單吧。其實我們每一個不懂寫程序的人每天都在腦海裡寫程序,只是我們自己沒有感覺到,Python的易學易用性就很適合每個人來學習。

一個通用的分支程序流程如下圖:

在Python語言裡面,將所有非零和非空的值都定義為True。並且在Python裡面支持如下類型的代碼結構:

if ...... :

----statements

else:

----statements

if ...... :

----if ...... :

--------statements

----else :

--------statements

else :

----statements

if ...... :

----statements

elif ...... :

----statements

else :

----statements

我們可以看到,分支語句還支持嵌套,當然了,比如某個小女孩腦海裡有這麼一個計劃,找媽媽要糖果吃,如果媽媽不給,那就再要蛋糕,如果蛋糕也不給,就再要求買個玩具。程序在3歲的小女孩的腦海裡,就是這麼簡單,其實程序無數不在。

當然分支語句也可以寫成單行,雖然我不贊成這樣寫,但是還是給出一個示例給大家。

if we_are_good_here(): we_will_go_to_next_topic()

循環

循環其實也很簡單,大部分同學都已經在腦海裡寫過循環語句了。比如:如果她不答應做我女朋友,我就一直追下去。類似的情形還有很多很多,就不一一舉例了。比如我們有如下一段程序:

i = 0

while i < 7:

----i += 1

----print(i)

我們會發現這段代碼列印出來的結果是:

1

2

3

4

5

6

7

一個基本的循環流程如下:

Python中的循環語句包括while循環和for循環,並且循環之間可以嵌套。上面我們已經看到了while循環的例子,我們來分別看一下for循環和循環嵌套的示例:

for i in (0, 8):

----print(i)

其運行結果為:

1

2

3

4

5

6

7

我們再來看一個循環嵌套的例子,無論是for循環還是while循環都是可以互相嵌套的,我們僅僅來舉一個例子。

i = 0

while i < 3:

----for j in (0,2):

--------print(i, j)

--------j += 1

----i += 1

其運行結果為:

0, 0

0, 1

1, 0

1, 1

2, 0

2, 1

對於循環,還有循環控制語句。Python中的循環控制語句如下,

break

continue

其中,break用來跳出一層循環,也就是說如果有嵌套時,它只跳出一層;而continue表示跳出當次循環進入到下一次循環。

我們來看一個例子。

i = 0

while True:

----i+= 1

----if i == 3:

--------continue

----if i >5:

--------break

----print(i)

我們可以看到其結果為:

1

2

4

5

看到這裡,大家應該明白Python如何來寫分支和循環語句了。

函數

函數其實很簡單,我們在上述代碼中看到的print就是一個函數了!那麼我們如何來定義一個函數呢?我們來看下面的例子,def表示定義一個函數,基本語法了;first_function是函數名;para1則是函數的參數,個數可以多個,也可以沒有參數,para2也是,不過我們給它一個默認值,也就是說你在調用這個函數的時候可以省略para2,函數會默認para2為3;return表示函數的返回值,當然也可以沒有返回值;:

def first_function(para1,para2=3):

----ret = para1 + para2

----return ret

我們來看一下如何調用這個函數:

ret = first_function(5, para2=4)

print(ret)

ret = first_function(5)

print(ret)

我們可以看到結果分別為:

9

8

Python的函數的參數可以傳值,也可以傳引用。和C語言裡不一樣的是,C是純純的值傳遞,如果要修改函數外的值,那麼要傳遞指針進去,但是即便是指針,其實也是值傳遞,不過傳遞的是一個地址。我們來看Python的一個例子。

listA = [1, 2, 3, 4, 5]

a = 3

def second_function(para):

----para[2] = 'Hi'

def third_function(para):

----para = 4

second_function(listA)

print(listA)

third_function(a)

print(a)

我們會發現其運行結果為:

[1, 2, 'Hi', 4, 5]

3

接下來我們具體來介紹一下Python函數參數的幾種類型。

Python對這幾類類型也有相應的名字,我們不管它,我們只分兩類就可以,固定參數和可變長參數。我們分別來看一個寫法和用法。

def fourth_function(para1, para2, para3=3):

----return para1+para2+para3

ret = fourth_function(1,2)

print(ret)

ret = fourth_function(para2=2, para1=1, para3=3)

print(ret)

ret = fourth_function(1,2,3)

print(ret)

ret = fourth_function(1,para2=2,para3=3)

print(ret)

大家可看到,這幾種調用方法都可以,可見Python的寫法是很靈活的。接下來我們來看看可變參數的寫法。

def fifth_function( para1, *paratuple ):

----print(para1)

----for para in paratuple:

--------print(para)

fifth_function(1)

fifth_function(1, 2, 3, 4, 5)

我們可以看到其運行結果分別為:

1

1

2

3

4

5

基本上我們關於分支、循環和函數的話題到此就講完了,基本上學習編程並不是一件很難的事情。用Python來說的話,甚至是簡單的有點過分的。任何一門程式語言的學習,最重要的還是多寫多讀代碼,但在整個學習的節奏和方向的把控上,一個好的老師是非常必要的。我們現行的很多的書籍也好、教程也好,編輯者可能甚至沒有編程經驗,所以大家需要花很多的時間去看很多冗餘的內容,人的精力是有限的,高效的學習是非常重要的。

相關焦點

  • Python基礎教程之循環語句的使用
    程序的三大流程* 在程序開發中,一共有三種流程方式: * **順序** —— **從上向下**,順序執行代碼 * **分支** —— 根據條件判斷,決定執行代碼的 **分支** * **循環** —— 讓 **特定代碼 重複** 執行
  • Python for循環及用法詳解
    圖 1 for 循環語句的執行流程圖下面的程序演示了 for 循環的具體用法:add = "http://c.biancheng.net/python/"#for循環,遍歷 add 字符串for ch in add: print(ch,end="")運行結果為:
  • python 函數定義以及函數的調用
    函數的定義1. 函數的定義的格式def 函數名(參數):passreturn 表達式2.函數名命名規則: 字母、數字和下劃線組成,和變量命名規則一致return 後面可以返回任意表達式,但不能是賦值語句3. 函數調用:函數名(參數)4.
  • 四、python編程基礎之循環語句:基本語法以及應用實例
    實驗目的:學習python的循環語句實驗環境:已正確安裝python3.51、循環語句的語法循環語句主要應用於多次有規律的重複操作,python中有兩種循環語句,分別為for...in 和while循環。
  • 給妹子講python-S01E17函數的基本特徵
    前文傳送門:給妹子講python-S01E01好用的列表給妹子講python-S01E02學會用字典給妹子講python-S01E03元組的使用給妹子講python-S01E04容器遍給妹子講python-S01E10動態類型與共享引用給妹子講python-S01E11賦值與對象拷貝給妹子講python-S01E12循環迭代初體驗給妹子講python-S01E13循環迭代高級技巧給妹子講python-S01E14可迭代對象和迭代器給妹子講python-S01E15迭代環境給妹子講
  • Python函數的基本特徵詳解
    函數還能計算出一個返回值,並能夠改變作為函數輸入的參數,而這些參數在代碼運行時也許每次「代入」的值都不相同。函數是python為了代碼最大程度的重用和最小化代碼冗餘而提供的最基本的程序結構。函數有關的內容主要分為函數的基本概念、作用域以及參數傳遞,還有一些相關的高級概念,如裝飾器。
  • 詳解 Python 的 enumerate 函數
    你應該在何時何地,如何使用內置的 enumerate() 函數來寫出更加簡潔、更加具有 Python 範兒的循環結構呢?但是我並沒有直接使用循環去調用它,而是將它在控制臺列印輸出。正如你看到的,它是一個枚舉對象,其實也就是一個迭代器。就像我之前說的那樣,當我需要的時候,它可以將結果一個一個地產生出來。為了檢查這些按需產生的元素,我們需要將其顯示出來。在這裡我對這個迭代器使用了內置函數 list。
  • python while循環、數據類型
    ', 'ruby'],'sarah': ['c'],'edward': ['ruby', 'go'],'phil': ['python', 'haskell'],} for name, languages in favorite_languages.items():print("\n" + name.title()
  • Python分支結構(if條件語句)
    在Python程序中有三種基本算法結構,分別是順序結構;分支結構和循環結構。順序結構就是按照語句的自然先後順序進行依次執行,我們之前講解的案例基本都是順序結構,順序結構比較簡單,在此不做贅述,讓我們直接來看分支結構。
  • python語法基礎
    = ['a', 'b', 'c']for i in letters: print(i)for循環用於針對每個元素進行相同操作的場景,while循環用於給定條件下的操作,用法如下while x <= 10: x +=1在python中,針對for和while循環,還加入了else語句,用於循環結束後的在執行一條語句
  • 了解和掌握Python的函數
    range函數用來控制循環次數,默認從0開始,執行n次。這裡的i是循環過程中的數字變量,即第幾次循環。嚴格意義上說,上述的代碼可以細分成循環、迭代和遍歷。循環是滿足一定條件下,執行相同的代碼,while就是典型的循環。迭代是按順序範圍訪問列表中的項,比如for,上文中針對列表和字典的循環更應該稱呼為迭代。遍歷是按一定的規則訪問所有的元素,它可以是線性,也可以是樹型。另外還有一種用法叫遞歸,它在函數中用到。
  • python 內置函數
    列舉部分python內置函數描述abs() 函數返回數字的絕對值
  • Python中有哪些內置函數呢?以及內置函數實例
    #python軟體學習#>Python中有哪些內置函數呢?filter 過濾器map 對於參數iterable中的每個元素都應用fuction函數,並將結果作為列表返回zip 將對象逐一配對實例1 常用內置函數
  • Python的range函數與for循環語句
    本篇介紹Python for循環語句和range函數的使用,文中主要討論for循環語句,Python的for循環語句類似於shell或是腳本語言中的foreach循環,可以迭代序列對象。使用range函數可以讓Python的for循環提供類似於傳統的for循環功能。通過本篇的學習,可以達成如下目標。
  • Python循環語句代碼逐行詳解:while、for、break和continue
    for…in…循環通常與range()函數一起使用,range()返回一個列表,for…in…遍歷列表中的元素。例如:1x = 02while x < 5:3    print(x)4    x = x + 2while循環的寫法比較瑣碎,需要比較判斷。因此,對此也可以使用for循環,藉助range()函數來實現。
  • Python map() 函數
    map()是Python中的內置函數,可將函數應用於給定可迭代對象中的所有元素。它允許您編寫簡單幹淨的代碼而無需使用循環Python map()函數map()函數採用以下形式:map(function, iterable, ...)
  • 白話 Python 的函數式編程
    l = [1, 2, 3, 4, 5]new_list = map(lambda x: x * 2, l) 我們再來看一下 Python 提供的函數式編程的接口的性能,就以 Map 為例,上述的例子還可以用 for 循環和 list comprehension 實現,我們來比較一下他們的速度:
  • Python入門,for循環
    for語句比較簡單,就是定義好變量I(變量可以隨意定義),但是range是不可以變得,range(start, stop[,step]) 是python的一個內置函數。 range() 函數可創建一個整數列表,一般用在 for 循環中。
  • 利用python計算函數與x軸之間的面積
    用數學表達式表示出來就是:也就是求解任意一個函數的絕對值與x軸之間構成的面積,我們以函數sin(x)為例(因為函數sin(x)便於對計算結果進行檢驗),如圖所示:我們用積分的定義來計算,積分就是將函數分成無數的小段,然後對每一小段進行求和處理。
  • python循環語句for和while用法-py猜數字小遊戲-學習python第4天
    而python程序遇到循環,重複的問題時,就需要使用python循環語句for-in循環或者while循環來解決。這兩者有什麼區別以及如何使用呢?下面羽憶教程為你解答。這時我們如果採取老辦法,重複寫3600次print("python循環語句")是可以完成任務,但是這樣太枯燥、太乏味,作為程式設計師就應該學會變通,所以就出現了python循環語句,利用python循環語句,一小段代碼可以幫你解決重複輸出3600次的煩惱,可見python循環語句主要是用於解決某些重複的代碼工作。那麼有哪些是python循環語句呢?