條件語句格式:python
執行語句……bash
if 判斷條件:app
執行語句……函數
else:工具
當if有多個條件時可以使用括號來區分判斷的前後順序,括號中的判斷優先執行,此外 and 和 or 的優先級低於>(大於)、<(小於)等判斷符號,即大於和小於在沒有括號的狀況下會比與或要優先判斷。ui
因爲 python 並不支持 switch 語句,因此多個條件判斷,只能用 elif 來實現,若是判斷須要多個條件需同時判斷時,可使用 or (或),表示兩個條件有一個成立時判斷條件成功;使用 and (與)時,表示只有兩個條件同時成立的狀況下,判斷條件才成功。spa
if 判斷條件1:code
執行語句1……對象
elif 判斷條件2:字符串
執行語句2……
elif 判斷條件3:
執行語句3……
else:
執行語句4……
In [1]:
num = 5 if num == 3: # 判斷num的值
print 'boss' elif num == 2:
print 'user'elif num == 1:
print 'worker'elif num < 0: # 值小於零時輸出
print 'error'else:
print 'roadman' # 條件均不成立時輸出
roadman
複製代碼
1.1 and、or
對or而言,Python會由左到右求算操做對象,而後返回第一個爲真的操做對象。
Python會在其找到的第一個真值操做數的地方中止,一般叫短路計算。
In [2]:
2 < 3, 3 < 2
Out[2]:
(True, False)
In [3]:
2 or 3, 3 or 2
Out[3]:
(2, 3)
複製代碼
若是左邊的操做數爲假(空對象),Python只會計算右邊的操做數並將其返回
In [4]:
[] or 3
Out[4]:
3
In [5]:
[] or {}
Out[5]:
{}
and 會停在第一個爲假的對象上
In [6]:
2 and 3, 3 and 2
Out[6]:
(3, 2)
In [7]:
[] and {} #空 list 自己等同於 False
Out[7]:
[]
In [ ]:
#因爲一個空 list 自己等同於 False,因此能夠直接:if mylist:
# Do something with my listelse:
# The list is empty
複製代碼
1.2 神奇的布爾值
從一個固定大小的集合中選擇非空的對象,只要將其串在一個or表達式便可
In [ ]:
X = A or B or C or None #會把X設爲A、B以及C中第一個非空(爲真)的對象,或者全部對象都爲空就設爲None
In [ ]:
X = A or default # 若是A爲真(或非空)的話將X設置爲A,不然,將X設置爲default
In [ ]:
if f1() or f2():...# 若是f1返回真值(非空),Python將再也不執行f2,若要保證兩個函數都執行,須要在or以前調用他們,如tmp1, tmp2 = f1(), f2()if tmp1 or tmp2:...
複製代碼
稍後會介紹更加奇特的迭代工具,如生成器、filter和reduce。如今先從最基礎的學起。
Python提供了for循環和while循環(在Python中沒有do...while循環),for循環通常比while計數器循環運行得更快
break語句,在語句塊執行過程當中終止循環,而且跳出整個循環
continue語句,在語句塊執行過程當中終止當前循環,跳出該次循環,執行下一次循環。
pass語句,是空語句,是爲了保持程序結構的完整性。不作任何事情,通常用作佔位語句。
循環else塊,只有當循環正常離開時纔會執行(也就是沒有碰到break語句)
2.1 while
In [8]:
count = 0while (count < 9):
print 'The count is:', count
count = count + 1
The count is: 0
The count is: 1
The count is: 2
The count is: 3
The count is: 4
The count is: 5
The count is: 6
The count is: 7
The count is: 8
複製代碼
2.2 for
是一個通用的序列迭代器,能夠遍歷任何有序的序列對象內的元素。可用於字符串、列表、元組、其餘內置可迭代對象等
In [ ]:
for iterating_var in sequence:
statements(s)
In [10]:
for letter in 'Python': # 第一個實例
print '當前字母 :', letterfruits = ['banana', 'apple', 'mango']for fruit in fruits: # 第二個實例
print '當前字母 :', fruit
當前字母 : P
當前字母 : y
當前字母 : t
當前字母 : h
當前字母 : o
當前字母 : n
當前字母 : banana
當前字母 : apple
當前字母 : mango
In [11]:
T = [(1,2), (3,4), (5,6)]for (a,b) in T:
print (a,b)
(1, 2)
(3, 4)
(5, 6)
In [12]:
D = {'a':1,'b':2,'c':3}for key in D:
print (key,'=>',D[key])
('a', '=>', 1)
('c', '=>', 3)
('b', '=>', 2)
In [13]:
D.items()
Out[13]:
[('a', 1), ('c', 3), ('b', 2)]
In [14]:
for (key,value) in D.items():
print (key,'=>',value)
('a', '=>', 1)
('c', '=>', 3)
('b', '=>', 2)
嵌套的結構能夠自動解包
In [15]:
for ((a,b),c) in [((1,2),3),((4,5),6)]: print (a,b,c)
(1, 2, 3)
(4, 5, 6)
複製代碼
2.3 break
In [16]:
for letter in 'Python': # First Example
if letter == 'h':
break
print 'Current Letter :', letter
Current Letter : P
Current Letter : y
Current Letter : t
複製代碼
2.4 continue
In [17]:
for letter in 'Python': # 第一個實例
if letter == 'h':
continue
print '當前字母 :', letter
當前字母 : P
當前字母 : y
當前字母 : t
當前字母 : o
當前字母 : n
複製代碼
2.5 pass
In [18]:
for letter in 'Python':
if letter == 'h':
pass
print '這是 pass 塊'
print '當前字母 :', letter
當前字母 : P
當前字母 : y
當前字母 : t
這是 pass 塊
當前字母 : h
當前字母 : o
當前字母 : n
In [ ]:
複製代碼
轉載:寬客在線