Python核心丨條件與迴圈

2021-10-06 22:44:19 字數 4429 閱讀 9861

條件語句

語法

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,就把縮排的...