python if條件控制
if 語句 直接上例項
>>> x = int(input("please enter an integer: "))
please enter an integer: 42
>>> if x < 0: //如果
... x = 0
... print('negative changed to zero')
... elif x == 0: //或者 如果
... print('zero')
... elif x == 1: //或者 如果
... print('single')
... else: //或者
... print('more')
more
這裡要記住 if和else的組合,如果有多條件時,elseif 簡寫成elif.
python for 語句
for 子元素 in 集合,如
>>> # measure some strings:
... words = ['cat', 'window', 'defenestrate']
>>> for w in words:
... print(w, len(w))
cat 3
window 6
defenestrate 12
遍歷某個集合的同時修改該集合的內容,很難獲取想要的結果。要在遍歷時修改集合的內容,應該遍歷該集合的副本或建立新的集合:
# strategy: iterate over a copy
for user, status in users.copy().items():
if status == 'inactive':
del users[user]
# strategy: create a new collection
active_users = {}
for user, status in users.items():
if status == 'active':
active_users[user] = status
上述**,在for迴圈巢狀了if條件語句,這是控制語句的巢狀。
range() 函式
內建函式 range() 常用於遍歷數字序列,該函式可以生成算術級數:
>>> for i in range(5):
... print(i)
前面章節有range()函式的用法,再來個例項:
>>> for i in range(5, 10)
5, 6, 7, 8, 9
>>> for i in range(0, 10, 3)
0, 3, 6, 9
>>> for i in range(-10, -100, -30)
-10, -40, -70
range() 和 len() 組合在一起,可以按索引迭代序列:
>>> a = ['mary', 'had', 'a', 'little', 'lamb']
>>> for i in range(len(a)):
... print(i, a[i])
0 mary
1 had
2 a3 little
4 lamb
如果只輸出 range,會出現意想不到的結果:
>>> print(range(10))
range(0, 10)
range() 返回物件的操作和列表很像,但其實這兩種物件不是一回事。迭代時,該物件基於所需序列返回連續項,並沒有生成真正的列表,從而節省了空間。
這樣的物件稱為可迭代物件 iterable,函式或程式結構可從該物件中獲取連續項,直到所有元素全部迭代完畢。for 語句就是這樣的架構,sum() 是一種把可迭代物件作為引數的函式:
>>> sum(range(4)) # 0 + 1 + 2 + 3
>>> list(range(4))
[0, 1, 2, 3]
break 和 continue 語句
break 語句和 c 中的類似,用於跳出最近的 for 或 while 迴圈。
迴圈語句支援 else 子句;for 迴圈中,可迭代物件的元素全部迴圈完畢時,或 while 迴圈的條件為假時,執行該子句,break 語句終止迴圈時,不執行該子句。 請看下面這個查詢素數的迴圈示例:
>>> for n in range(2, 10):
... for x in range(2, n):
... if n % x == 0:
... print(n, 'equals', x, '*', n//x)
... break
... else:
... # loop fell through without finding a factor
... print(n, 'is a prime number')
2 is a prime number
3 is a prime number
4 equals 2 * 2
5 is a prime number
6 equals 2 * 3
7 is a prime number
8 equals 2 * 4
9 equals 3 * 3
與 if 語句相比,迴圈的 else 子句更像 try 語句的 else 子句: try 語句的 else 子句在未觸發異常時執行,迴圈的 else 子句則在未執行 break 時執行。
>>> for num in range(2, 10):
... if num % 2 == 0:
... print("found an even number", num)
... continue
... print("found an odd number", num)
found an even number 2
found an odd number 3
found an even number 4
found an odd number 5
found an even number 6
found an odd number 7
found an even number 8
found an odd number 9
pass 語句
pass 語句不執行任何操作。語法上需要乙個語句,但程式不實際執行任何動作時,可以使用該語句。例如:
迴圈語句的pass用法
>>> while true:
... pass # busy-wait for keyboard interrupt (ctrl+c)
這段**建立了乙個最小的類:
類的pass用法
>>> class myemptyclass:
... pass
pass 還可以用作函式或條件子句內的佔位符,讓開發者聚焦更抽象的層次。此時,pass 直接就被忽略了:
函式的pass用法
>>> def initlog(*args):
... pass # remember to implement this!
Python 流程控制與函式
x int raw input please enter an integer if x 0 x 0 print negative changed to zero elif x 0 print zero else print more please enter an integer 23 more其...
python流程控制 python之流程控制
電腦程式在解決某個具體問題時,包括三種情形,即順序執行所有的語句 選擇執行部分的語句和迴圈執行部分語句,這正好對應著程式設計中的三種程式執行結構流程 順序結構 選擇結構和迴圈結構。事實證明,任何乙個能用計算機解決的問題,只要應用這三種基本結構來寫出的程式都能解決。python語言當然也具有這三種基本...
Python流程控制語句流程控制語句
流程控制語句1 if語句 if 語句基本用法 if 表示式 語句塊其中,表示式可以是乙個單純的布林值或變數,也可以是比較表示式或邏輯表示式,如果表示式為真,則執行 語句塊 如果表示式的值為假,就跳 過 語句塊 繼續執行後面的語句。2 if else語句 if else 語句基本用法 if 表示式 語...