既然講到語句,那先說明一下語句塊。語句塊不是一種語句,是一組語句。在條件為真時執行或者多次的一組語句。主要注意其格式,用冒號來標識語句塊的開始,塊中每行縮進相同的量,一般4個空格(tab字符位置為8個空格,不使用)。簡單的說就是通過縮排使語句成組的一種方式。
條件語句if
python中,False、None、0、""、()、[]、{}這些作為布爾表達式的時候都會為假。
if語句也很簡單,在if和冒號之間的表達式為真,則執行;else在第一個語句塊為假時執行。檢查多個條件使用elif。在條件中的運算符就是比較運算符,出了比較大小等之外,還有幾個需要注意:
x is y x和y是同一對象
x is not y x和y不是同一對象
x in y x是y容器(成員資格檢查)
x not in y x不是y容器
==運算符判斷兩個對象是否相等,而is判斷是否是同一個對象
斷言,簡單的說就是肯定某條件為真。使用assert關鍵字檢查條件或檢查函數參數屬性等,在程序出現錯誤條件時,直接崩潰,有助於排錯。
while循環與for循環
while循環,條件為真的時候重復執行一個代碼塊,當需要為一個集合的每一個元素執行一個代碼塊的時候就需要for循環了。能使用for循環,就盡量不使用while循環。
以兩個例子來表示:
循環遍歷字典
break跳出循環,而continue跳過循環體,不結束循環。
while True實現一個自己不會停止的循環,但是在循環內部加入滿足條件break可以終止循環。
列表推倒式,可以說是循環的一種表達式。是利用其他列表來創建新的列表。
pass、del、exec
pass語句什么都不做,可以作為占位符使用。如果不用pass(這里是作占位符),則報錯,python中空代碼塊是非法的。
當要刪除一個字典或者序列的時候,可以使用置空(None),也可以使用del語句。它會移除一個對象的引用,也會移除這個名字的本身。
exec語句用與執行python程序相同的方式來執行字符串。通過增加in<scpoe>來實現放置代碼字符串命名空間的字典。
內建函數eval對寫在字符串中的表達式進行計算並返回結果。eval也可以使用命名空間,一個全局一個局部,全局必須是字典,局部可以是任何形式的映射。
exec或者eval的作用域跳用可以在其之上調用。