python流程控制函式 python流程控制

2021-10-19 03:21:49 字數 3551 閱讀 1997

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 表示式 語...