人人都能學會的python程式設計教程4:關係運算子與迴圈

程式設計老司機發表於2018-05-10

關係運算子

if 語句

實際應用中的程式,大多不是一撮而就的,而是根據條件不同存在很多分支。

最基本的條件分支結構是if...else...語句即如果。。。否則。。。

寶寶都能學會的python程式設計教程4:關係運算子與迴圈

在python當中,if condition1:(注意最後的冒號:)稱為“語句頭”。冒號:之後另起一行縮排的是“語句體”,語句體的行數不限,但至少有一行,否則需要用pass填充(即什麼也不做)。

縮排是Python複合語句的關鍵,初學者經常因縮排不當而導致報錯。關於縮排的習慣可以分為兩個派別:Tab黨,和Space黨,即用Tab鍵或空格鍵來控制縮排。(我本人常年堅持使用Tab)

if之後必須是一個布林表示式(如 condition1),當它為 True 時,執行其對應的語句體(branch1),否則向下跳轉到後一個語句頭(elif)。如果所有的 if 都沒有被滿足,則執行最後一個 else對應的語句體。

每個if分支所屬的程式體都需要縮排,否則會產生語法錯誤,這與C/C++/Java等使用大括號 {} 的語言不同。

其實我個人認為,使用大括號的程式碼可讀性更高,而且不容易在傳播過程中失真。

下面寫一個小程式判斷一個數是奇數還是偶數

寶寶都能學會的python程式設計教程4:關係運算子與迴圈

迴圈

Python只支援兩種迴圈:for 迴圈和 while 迴圈。

在語法結構上和 if/else 有些接近,比如語句頭需要加冒號(:),語句體需要縮排。

for 迴圈

寶寶都能學會的python程式設計教程4:關係運算子與迴圈

在上一課中,我們介紹過對字串的in和not in運算子:in運算子並非字串的專利,很多資料型別都具備這樣的性質,可以作為“迭代器”。

寶寶都能學會的python程式設計教程4:關係運算子與迴圈

迭代器

組成 for 迴圈的一個關鍵部分就是迭代器。最常用的迭代器其實是列表(list)。字典(dictionary)也可以作為迭代器,迭代物件就是(key)。

這些可以作為迭代器的資料容器,在之後的幾節會詳細介紹他們的屬性,下面先來看一個簡單的小例子:

寶寶都能學會的python程式設計教程4:關係運算子與迴圈

迭代器共有4個元素,分別是4個漢字。for迴圈迭代了四次,每次取一個字,並執行print()函式。

range()函式

range()函式可以生成特定形式的數值迭代數列,經常配合 for 迴圈使用。range()讀取三個引數,分別對應三種情況:

  • range(a):一個引數,這個引數就是數列的上限(開區間,不包含這個數本身),下限預設為0。

  • range(a, b):兩個引數分別指定了上下限。下限(a)是閉區間,也包含在其中;而上限(b)則是開區間,不參與計算。

  • range(a, b, c):三個引數。第三個引數叫步長,前兩個例子沒有第三個引數,因此都是以預設值 1 為步長。本例中我們人為指定了步長。輸出了 10 以內的偶數。值得再次提醒的是,這裡的“10以內”不包括10。注意,如果 range(a, b) 的引數 a>b,那麼返回的將是一個空陣列

  • 如果步長為負數,會返回什麼樣的結果呢?

  • 看下圖

寶寶都能學會的python程式設計教程4:關係運算子與迴圈

while 迴圈

while 迴圈會持續反覆執行迴圈內語句,直到condition == False。

每次執行語句之後,都會重新檢查條件是否為真,如果為假則跳出迴圈。

寶寶都能學會的python程式設計教程4:關係運算子與迴圈

下面出一個程式設計小練習:

找出 100 以內三的倍數,放入列表 numbers 中。

numbers = []

列表新增元素地方法是:numbers.append()

>>>> 程式設計區 <<<<

>>>> 程式設計區 <<<<

下篇文章我們公佈答案。

相關文章