python入門教程(二)——控制流

本教程根據《python編程快速上手》製作,如需轉載,請註明出處。

要想明白怎麼控制程序流程,首先要知道邏輯表達式。

一、布爾值

雖然整型、浮點型和字符串數據類型有無數種可能的值,但“布爾”數據類型只有兩種值:True 和 False

注意:布爾變量字母首字母要大寫,後面的字母小寫。

二、比較操作符

這個每種語言基本都一樣的。

這些操作符根據給它們提供的值,求值爲 True 或 False。

注意,整型或浮點型的值永遠不會與字符串相等。

<、>、<=和>=操作符僅用於整型和浮點型值。

等號和賦值號的區別:

三、布爾操作符

3 個布爾操作符(and、or 和 not)用於比較布爾值。它們將這些表達式求值爲一個布爾值。

(1)二元操作符

and 和 or 操作符總是接受兩個布爾值(或表達式),所以它們被認爲是“二元”操作符。

and的真值表:總結一句話:只有兩邊都爲真,結果才爲真,否則便爲假。

or的真值表:總結一句話:只有兩邊都爲假,結果才爲假,否則便爲真

(2)not(非)操作符

not的真值表:總結一句話:否定真,便爲假;否定假,便爲真。

四、混合布爾和比較操作符

and、or 和 not 操作符稱爲布爾操作符是因爲,它們總是操作於布爾值。雖然像 4 < 5 這樣的表達式不是布爾值,但可以求值爲布爾值。

注意:Python 先求值 not 操作符,然後是 and 操作符,然後是 or 操作符

五、控制流的元素

控制流語句的開始部分通常是“條件”,接下來是一個代碼塊,稱爲“子句”

(1)條件

條件總是求值爲一個布爾值,True 或 False。控制流語句根據條件是 True 還是 False,來決定做什麼。幾乎所有的控制流語句都使用條件。

(2)代碼塊

一些代碼行可以作爲一組,放在“代碼塊”中。可以根據代碼行的縮進,知道代碼塊的開始和結束。代碼塊有 3 條規則。

總而言之:代碼塊和C/C++的大括號的作用差不多,代碼塊內部爲一個整體。

六、控制流語句

(1)if語句

最常見的控制流語句是 if 語句。if 語句的子句(也就是緊跟 if 語句的語句塊),將在語句的條件爲 True 時執行。如果條件爲 False,子句將跳過。

if 語句包含以下部分:

所有控制流語句都以冒號結尾,後面跟着一個新的代碼塊(子句)。

所有縮進的前面必有冒號。

(2)else語句

if 子句後面有時候也可以跟着 else 語句。只有 if 語句的條件爲 False 時,else子句纔會執行

(3)elif語句

雖然只有 if 或 else 子句會被執行,但有時候可能你希望,“許多”可能的子句中有一個被執行。elif 語句是“否則如果”,總是跟在 if 或另一條 elif 語句後面。它提供了另一個條件,僅在前面的條件爲 False 時才檢查該條件

首先,總是隻有一個 if 語句。所有需要的 elif 語句都應該跟在 if 語句之後。其次,如果希望確保至少一條子句被執
行,在最後加上 else 語句。

(4)while語句

利用 while 語句,可以讓一個代碼塊一遍又一遍的執行。只要 while 語句的條件爲 True,while 子句中的代碼就會執行

(5)break語句

如果執行遇到 break 語句,就會馬上退出循環子句。

如果是多重循環,break跳出離其最近的一個循環。

(6)continue 語句

如果程序執行遇到 continue語句,就會馬上跳回到循環開始處,重新對循環條件求值(這也是執行到達循環末
尾時發生的事情)。

注意:實際上,只能在 while 和for 循環內部使用 continue 和 break 語句。如果試圖在別處使用這些語句,Python 將
報錯

(7)for循環和range()函數

如果你想讓一個代碼塊執行固定次數,就用for循環。語法規則如下:

示例程序:

運行結果:

for循環和while循環可以等價轉換。

注意:在for循環中使用整數次循環,有時候忘了寫range函數,就會出現以下問題:

報的是類型錯誤,"int"對象是不可迭代的。也就是說“6”的那個位置必須要是一個可以迭代的對象,range的作用就是把整形變得可迭代。

(8)range()函數

此函數有三個參數:第一個參數是迭代的起始位置,此參數可以省略,默認從0開始。第二個參數是迭代的終止位置。不包括終止時候的值。第三個參數是步長,步長是每次迭代後循環變量增加的值。

例子1:

例子2:

可以用負數作爲步長參數,讓循環計數逐漸減少,而不是增加。

例子3:

七、導入模塊

Python 也包括一組模塊,稱爲“標準庫”。每個模塊都是一個 Python 程序,包含一組相關的函數,可以嵌入你的程序之中。

這和C語言中的頭文件,java中裏的包意思是一樣的。別人已經寫好的函數或者對象啥的,保存在一個文件中。你在這聲明一下,然後就可以直接調用了。

語法規則:

以random模塊爲例,說明用法。

首先導入random模塊,然後循環5次,打印1-10中間的5個隨機整數。

random.randint()函數調用求值爲傳遞給它的兩個整數之間的一個隨機整數。因爲 randint()屬於 random 模塊,必須在函數名稱之前先加上 random。

還有另一種導入模塊的語法:import 語句的另一種形式包括 from 關鍵字,之後是模塊名稱,import 關鍵字和一個星號,例如 from random import *。使用這種形式的 import 語句,調用 random模塊中的函數時不需要 random.前綴。但是,使用完整的名稱會讓代碼更可讀,所以最好是使用普通形式的 import 語句。

八、用 sys.exit()提前結束程序

一般來說,當程序執行到指令的底部時,總是會終止。但是,通過調用 sys.exit()函數,可以讓程序終止或退出。因爲這個函數在 sys 模塊中,所以必須先導入 sys,才能使用它。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章