瘋狂python講義學習日誌03 流程控制

2021-10-05 20:30:03 字數 4338 閱讀 5425

python提供了順序結構、分支結構和迴圈結構方便使用者進行流程控制。所謂順序結構是在按照正常的書寫格式書寫的一行行**,程式執行時會一行一行的執行這些**美其名曰順序結構。本章將對python的分支結構和迴圈結構進行詳細說明,為了簡潔明瞭的說明python的分支結構和迴圈結構,將展示大量示例**。

所謂分支結構是指if語句的使用。下面說明if語句的三種使用形式:

第一種形式:

if expression :

statement.

..

第二種形式:

if expression :

statement...

else

: statement.

..

第三種形式:

if expression:

statement...

elif expression:

statement...

else

: statement.

..

對於if語句來說,除了false本身,各種代表「空」的none、空字串、空元組、空列表和空字典都會被當成false處理。在使用if else分支語句時,一定要先處理包含範圍更小的情況。另外,可以使用pass語句使程式更加完整。
s =

input

("請輸入乙個整數:"

)s =

int(s)

if s>5:

print

("大於5"

)elif s<5:

pass

else :

print

("等於5"

)

斷言和if分支有點相似,它用於對乙個bool表示式進行斷言,如果該表示式為true,該程式可以繼續向下執行;否則該程式會引發assertionerror錯誤。

s_age =

input

("請輸入您的年齡:"

)age =

int(s_age)

assert

20< age <

80print

("您輸入的年齡在20到80之間"

)#如果輸入不在此範圍,報assersionerror錯誤

對於迴圈結構而言,包含如下4個部分:

while迴圈的語法格式如下:

#while迴圈的語法格式:

[init_statements]

while test_expressin

body_statements

[iteration_statements]

#while迴圈應用例項

count_i=

0while count_i <10:

print

("count:"

,count_i)

count_i+=

1print

("迴圈結束"

)#使用while迴圈遍歷元組和列表

a_tuple =

('fkit'

,'crazyit'

,'charlie')i=

0#只有i小於len(a_tuple),繼續執行迴圈體

while i <

len(a_tuple)

print

(a_tuple(i)

) i+=

1

for-in迴圈專門用於遍歷範圍、列表、元素和字典等可迭代物件包含的元素。for-in迴圈的語法格式如下:

for 變數 in 字串|範圍|集合等

statements

for-in迴圈可用於遍歷任何可迭代物件。可迭代物件是指該物件中包含乙個_iter_方法,且該方法的返回值物件是next()方法。

s_max =

input

("請輸入您想計算的階乘:"

)mx =

int(s_max)

result =

1#使用for-in遍歷範圍

for num in

range(1

,mx+1)

result *=num

print

(result)

src_list =[12

,45,33.4,13

,'a',4

,56,'crazyit'

,109.5

]my_sum=

0my_count=

0for ele in src_list

ifisinstance

(ele,

int)

orisinstance

(ele,

float

)print

(ele)

my_sum+=ele

my_count+=

1print

('總和:'

,my_sum)

print

('平均數:'

,my_sum/my_count)

上面程式使用了python的isinstance()函式,該函式用於判斷某個變數是否為指定型別的例項,其中前乙個是要判斷的變數,後乙個引數是型別。

a_list =

[330

,1.4,50

,'fkit'

,3.5

]for i in

range(0

,len

(a_list)):

print

("第%d個元素是%s"

%(i,a_list[i]

))

字典包含了如下幾個方法:

my_dict =

for key,value in my dict

.keys():

print

('key'

:key)

print

('value:'

,value)

print

('------------------------------------'

)#通過key()方法遍歷所有key

for key in my_dict.keys():

print

('key:'

,key)

print

('value:'

,my_dict[key]

)

for表示式最終返回的是列表,因此for表示式也被稱為列表推導式。

a_range =

range(10

)#對a_range執行for表示式

a_list =

[x*x for x in a_range]

#a_list集合包含10個元素

print

(a_list)

如果將for表示式的方括號改為圓括號,for表示式將不再生成列表,而是生成乙個生成器(generator),該生成器同樣可以使用for迴圈迭代。

#使用for表示式建立生成器

c_generator =

(x*x for x in a_range if x %2==

0)#使用for迴圈迭代生成器

for i in c_generator:

print

(i,end=

'\t'

)print

()

可以使用for表示式進行巢狀:

d_list =

[(x,y)

for x in

range(5

)for y in

range(4

)]print

(d_list)

使用zip()可以將兩個列表「壓縮」成乙個zip物件,如此就可以使用迴圈並遍歷兩個列表。

a=

['a'

,'b'

,'c']b=

[1,2

,3]c=

[0.1

,0.2

][x for x in

zip(a,b)][

('a',1

),('b',2

),('c',3

)][x for x in

zip(a,c)][

('a',1

,0.1),

('b',2

,0.2

)]

《JAVA瘋狂講義》學習筆記第六天

1 使用final修飾的引用型別變數不能被重新賦值,但可以改變引用型別變數所引用物件的內容。2 final變數可執行 巨集替換 因為在編譯時就可以確定其值。3 對於乙個private方法只在當前類顯示,子類無法訪問,若在子類中定義乙個一樣的方法,這不是重寫,相當於定義乙個新的方法。所以使用final...

《瘋狂Python講義》之異常處理

異常機制已經成為衡量一門程式語言是否成熟的標準之一,使用異常處理機制的python程式有更好的容錯性,更加健康。python的異常處理機制可以讓程式具有極好的容錯性。使用try except捕獲異常 語法結構如下 try 業務實現 except error1,error2,as e alert 輸入...

《瘋狂Python講義》之檔案IO

pathlib模組提供了一組物件導向的類,這些類可代表各種作業系統上的路徑,程式可通過這些類操作路徑。程式在建立purepath和path時,即可傳入單個路徑字串,也可以傳入多個路徑字串,purepath會將它們拼接成乙個字串。pp pureposixpath crazyit some path i...