看官是否記得,在上一部分的時候,有一講專門介紹if語句的:從if開始語句的征程。在學習if語句的時候,對python編程的基礎知識瞭解的還不是不少,或許沒有作什麼太複雜的東西。本講,要對它進行一番複習,經過複習提升一下。若是此前有的東西忘記了,建議首先回頭,看看前面那講。python
if 判斷條件1: 執行語句1…… elif 判斷條件2: 執行語句2…… elif 判斷條件3: 執行語句3…… else: 執行語句4……
只有當「判斷條件」的值是True的時候,才執行下面的執行語句。git
那麼,在python中,怎麼知道一個判斷條件是否是真呢?這個問題咱們在眼花繚亂的運算符中已經講解了一種數據類型:布爾類型。能夠經過一個內置函數bool()來判斷一個條件的結果True仍是False。看看下面的例子,是否是可以理解bool()的判斷規則?github
>>> bool("") False >>> bool(0) False >>> bool('none') True >>> bool(False) False >>> bool("False") True >>> bool(True) True >>> bool("True") True >>> bool(3>4) False >>> bool("b">"a") True >>> bool(not "") True >>> bool(not True) False
忘記了怎麼辦?看下面的語句:編程
if 忘記: 複習-->眼花繚亂的運算符一講
在執行語句中,其實不必定非要把bool()寫上的。如同這樣:app
>>> x = 9 >>> if bool(x>7): #條件爲True則執行下面的 ... print "%d more than 7"%x ... else: ... print "%d not more than 7"%x ... 9 more than 7 >>> if x>7: ... print "%d more than 7"%x ... else: ... print "%d not more than 7"%x ... 9 more than 7
以上兩個寫法是等效的,可是,在實際的編程中,咱們不用if bool(x>7)的格式,而是使用if x>7的樣式,還要特別提醒,若是寫成if (x>7),用一個括號把條件表達式括起來,是否是能夠呢?能夠,但也不是python提倡的。dom
>>> if (x>7): #不提倡這麼寫,這不是python風格 ... print "%d more than 7"%x ... 9 more than 7
平時總有人在不服氣的時候說「是騾子是馬,拉出來溜溜」,趙本山有一句名言「走兩步」。其本質都是說「光說不練是假把式」。今天收到一個朋友的郵件,也詢問,在學習python的時候,記不住python的內容。其實不用記,我在前面的課程中已經反覆講過了。可是,在應用中,會愈來愈熟練。函數
下面就作一個練習,要求是:學習
在這個練習中,顯然要對輸入的內容進行判斷,如下幾點須要看官注意:code
下面的代碼是一個參考:教程
#! /usr/bin/env python #coding:utf-8 print "請輸入字符串,而後按下回車鍵:" user_input = raw_input() result = user_input.isdigit() if not result: print "您輸入的不徹底是數字" elif int(user_input)%2==0: print "您輸入的是一個偶數" elif int(user_input)%2!=0: print "您輸入的是一個奇數" else: print "您沒有輸入什麼呢吧"
特別提醒列爲,這個代碼不是很是完善的,還有可以修改的地方,看官可否完善之?
再來一個如何?
已知一個由整數構成的list,從中跳出奇數和偶數,而且各放在一個list中。
請看官在看下面的參考代碼以前,本身寫一寫。
#!/usr/bin/env python #coding:utf-8 import random numbers = [random.randint(1,100) for i in range(20)] #以list解析的方式獲得隨機的list odd = [] even = [] for x in numbers: if x%2==0: even.append(x) else: odd.append(x) print numbers print "odd:",odd print "even:",even
用這個例子演示一下if在list解析中的應用。看能不能繼續改進一些呢?
能夠將循環的那部分用下面的list解析代替
#!/usr/bin/env python #coding:utf-8 import random numbers = [random.randint(1,100) for i in range(20)] #以list解析的方式獲得隨機的list odd = [x for x in numbers if x%2!=0] even = [x for x in numbers if x%2==0] print numbers print "odd:",odd print "even:",even
對賦值,看官應該比較熟悉了吧,若是要複習,請看《[賦值,簡單也不簡單]》(./127.md)以及《[正規地說一句]》(./201.md)的相關內容。
這裏說的有趣賦值是什麼樣子的呢?請看:
>>> name = "qiwsir" if "laoqi" else "github" >>> name 'qiwsir' >>> name = 'qiwsir' if "" else "python" >>> name 'python' >>> name = "qiwsir" if "github" else "" >>> name 'qiwsir'
總結一下:A = Y if X else Z
什麼意思,結合前面的例子,能夠看出:
再看看上面的例子,是否是這樣執行呢?
if語句彷佛簡單,可是在編程時間中經常使用到。勤加練習吧。