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...