條件語句
語法
if condition_1:
statement_1
elif condition_2:
statement_2..
.elif condition_i:
statement_i
else
: statement_n
整個條件語句是順序執行的,如果遇到乙個條件滿足,如condition_i滿足時,在執行完statement_i後,便會退出整個if、elif、else條件語句,而不會繼續向下執行
例項
if x <0:
y =-xelse
: y = x
省略判斷條件的常見用法
注:在實際寫**時,除了boolean型別的資料,條件判斷最好時顯性的
迴圈語句
迴圈本質上就是遍歷集合中的元素
例項
l =[1
,2,3
,4]for item in l:
print
(item)12
34
python中資料結構只要是可迭代的(iterable),如列表、集合等等,都可以通過這種方式遍歷
for item in
:...
字典比較特殊。字典本身只是鍵可迭代的,如果要遍歷它的值或者是鍵值對,需要通過其內建的函式values()或者items()實現。
values()返回字典的值的集合,items()返回鍵值對的集合
d =
for k in d:
print
(k)name
dobgender
for v in d.values():
# 遍歷字典的值
print
(v)jason
2000-01
-01male
for k, v in d.items():
# 遍歷字典的鍵值對
print
('key: {}, values: {}'
.format
(k, v)
)key: name, value: jason
key: dob, value:
2000-01
-01key: gender, value: male
通過range()這個函式,拿到索引,再去遍歷訪問集合中的元素
l =[1
,2,3
,4,5
,6,7
]for index in
range(0
,len
(l))
:if index <5:
print
(l[index])1
2345
同時需要索引和元素時,可以通過內建函式enumerate()
l =[1
,2,3
,4,5
,6,7
]for index, item in
enumerate
(l):
if index <5:
print
(item)12345
迴圈語句中的continue和breakcontinue就是讓程式跳過當前這層迴圈,繼續執行下面的迴圈;
break則是指完全跳出所在的整個迴圈體;
例項
# name_price: 產品名稱(str)到**(int)的對映字典
# name_color: 產品名字(str)到顏色(list of str)的對映字典
for name, price in name_price.items():
if price <
1000
:if name in name_color:
for color in name_color[name]
:if color !=
'red'
:print
('name: {}, color: {}'
.format
(name, color)
)else
:print
('name: {}, color: {}'
.format
(name,
'none'
))
使用continue的**
# name_price: 產品名稱(str)到**(int)的對映字典
# name_color: 產品名字(str)到顏色(list of str)的對映字典
for name, price in name_price.items():
if price >=
1000
:continue
if name not
in name_color:
print
('name: {}, color: {}'
.format
(name,
'none'))
continue
for color in name_color[name]
:if color ==
'red'
:continue
print
('name: {}, color: {}'
.format
(name, color)
)
對於while迴圈,原理是一樣的。當condition滿足時,一直重複迴圈內部的操作,直到condition不再滿足,跳出迴圈體。
while condition:..
.
兩種迴圈使用場景的區別
如果只是遍歷乙個已知的集合,找出滿足條件的元素,並進行響應的操作,那麼使用fot迴圈更加簡潔。
如果需要在滿足條件前,不停地重複某些操作,並且沒有特定的集合需要去遍歷,那麼一般則會使用while迴圈
例項
while
true
:try
: text =
input
('please enter your questions, enter 'q' to exit'
)if text ==
'q':
break..
....
print
(resonse)
except eeception as err:
print
('encountered error: [}'
.format
(err)
)break
for迴圈和while迴圈的效率問題
i =
0while i <
1000000
: i +=
1
等價
for i in
range(0
,100000):
pass
range()函式是直接由c語言寫的,呼叫它速度非常快。而』i+=1』需要通過python的直譯器間接呼叫底層的c語言。
顯然for迴圈的效率更勝一籌。
條件與迴圈的復用
條件與迴圈並作一行的操作
expression1 if condition else expression2 for item in iterable
將這個表示式分解
for item in iterable:
if condition:
expression1
else
: expression2
例項
text =
'today, is, sunday'
text_list =
[s.strip(
)for s in text.split(
',')
iflen
(s.strip())
>5]
print
(text_list)
['today'
,'sunday'
]
Python 條件分支與迴圈
python3預設支援中文 python 執行順序 從上到下 注意 python沒有編譯過程 if條件語句 if elif else 注意用 不是 money 200 if money 100 print 你有100塊錢 elif money 300 print 你有300塊 elif money ...
Python條件語句與迴圈
1 判斷與迴圈 python 縮排 main print hello print hello world.if 判斷條件 執行語句 elif 判斷條件 執行語句 else 執行語句while 判斷條件 執行語句a 100 while a 1 print a a 1 if a 50 break 退出迴...
python 條件判斷與迴圈
python 條件判斷與迴圈 if age int input please input your age if age 10 print child elif age 20 print young else print adult 根據python的縮排規則,如果if語句判斷是true,就把縮排的...