Python基礎教程 (二) 選擇結構與迴圈結構

2021-10-11 17:38:27 字數 4162 閱讀 9585

if

(條件a)

:pass

elif

(條件b)

:pass

elif

(條件c)

:pass

elif..

.:pass

else

:pass

編寫程式需要使用多分支的時候不要使用多個if替代,因為可能會在第乙個if裡改變變數的值導致進入第二個if

執行if語句的時候,會先計算條件,判斷最後的結果是true還是false,如果是true的話會進入這個if語句的程式塊,否則進行下乙個條件的判斷

每一層if語句可以再寫乙個if語句,只要保證好縮排就可以了,在python中,縮排就是層級關係。

a =

1b =

2if a>0:

if b<0:

print

(111

)else

:print

(222

)else

:if b<0:

print

(666

)else

:print

(777

)

這裡的x是可迭代物件,什麼叫可迭代物件呢,就是可以依次代表每個元素

常見的可迭代物件有字串、元組、列表、字典、集合

a =

'hzau'

for i in a:

print

(i)print

('#'*30

)b =

list

(a)# 建立乙個列表,同時學習一下,直接對字串使用list強制轉化的話,每乙個字元都對應乙個元素

print

(b)for i in b:

print

(i)

range是乙個迭代器,就像工廠可以生產產品一樣,迭代器可以生成可迭代物件。

它得到的結果是乙個range物件,構造內容是從a(a不寫預設從0開始)到b(不包含b)的整數偽列表(胡濱老師起的名字)

什麼意思呢,看下面**就知道了

a =

range(1

,10)print

(a)print

(list

(a))

# 看看a裡到底包含什麼東西

通過print(list(a))我們可以簡單理解為,range(1,10)就相當於建立了乙個列表,其中的元素是1-9

for i in

range(1

,10):

print

(i)

經常寫為for i in range(len(x)),為什麼這麼寫呢?因為我這樣寫索引和元素是一一對應的

a =

'hzau'

for i in

range

(len

(a))

:print

(i,a[i]

)

for i in x能做到的事,for i in range(x)都可以做,所以推薦使用for i in range(x)的寫法,反之不對

(細細體會這句話,就像下面要說的:for迴圈能做到的事,while迴圈都可以做,反之不對)

還是老話:因題而儀,具體情況具體分析

你可以先寫**,發現for i in x寫到最後寫不出來了,那你就換成for i in range(x)

如果不想動腦子就直接寫成for i in range(x)的形式,因為for i in x能做到的事,for i in range(x)都可以做

結構如下

while 條件:

迴圈體

當條件成立就會執行迴圈體的內容,例如

x=

0while x<=5:

print

(x) x+=

1#結果為0 1 2 3 4 5

當while的判斷條件一直為true的時候,程式會一直在迴圈裡,無法執行後面的**,如下

while1:

print

(666

)

但是,當給死迴圈加上乙個判斷條件的時候,就可以達到起到不錯的作用,例如,我們使用while迴圈替代for迴圈

mystr =

'hzau'

index =

0while

true

:# 建立死迴圈

if index >=

len(mystr)

:# 設定跳出迴圈的條件

break

print

(mystr[index]

) index +=

1

有同學可以看得出來,這個其實就等價於

mystr =

'hzau'

index =

0while index >=

len(mystr)

:# 建立死迴圈

print

(mystr[index]

) index +=

1

是的,沒錯,但是很顯然第一段**需要懂得腦子很少,邏輯更簡單

for i in

range(3

):if i==1:

continue

print

(i,666

)print

('###########################'

)for i in

range(3

):if i==1:

break

print

(i,777

)

考試的時候經常這麼描述:break用來跳出最內層迴圈,脫離迴圈後程式從迴圈**後繼續執行。【這句話是對的】

break只能跳出最內層的迴圈,也就是說它只能結束離它最近的迴圈結構,為什麼說最近呢?因為迴圈也可以巢狀呀,看看下面的例子就明白了

for i in

range(3

):for j in

range(3

):if j==1:

break

print

('i=%d,j=%d'

%(i,j)

)

那如果想跳出外面一層怎麼辦呢可以使用建立flag的方式,什麼叫建立flag,他就是建立乙個條件,根據條件狀態來判斷後面該怎麼編寫**,這個作用只可意會

flag =

1for i in

range(3

):ifnot flag:

# 這麼寫為什麼是對的呢?起到的作用和 if flag==0 一樣嗎?

break

for j in

range(3

):if j==1:

flag =

0break

print

('i=%d,j=%d'

%(i,j)

)

很多同學對程式是使用for迴圈還是while迴圈十分糾結,其實記住一句話就ok

for迴圈能做到的事,while迴圈都可以做,反之不對(細細體會)

其實,我們在寫程式的時候經常使用for迴圈,相比之下,while迴圈使用的少一點

有個了解就可以了,知道有這麼種形式,考的不是很多

執行完迴圈體,如果沒有被break掉的話,會繼續執行else裡面的內容

x=

0while x<=5:

print

(x) x+=

1else

:print

('進入else啦'

)###########################x=0

while x<=5:

if x==1:

print

(i)break

print

(x) x+=

1else

:print

('進入else啦'

)

做題前先想一下你是一直迴圈次數還是已知迴圈條件,然後判斷使用哪種迴圈方式

python基礎教程(二)

設定字串的格式 替換字段包括 欄位名,轉換標誌,格式說明符。轉換標誌 當前支援的字元包括r repr s str a ascii 最簡單的情況下,只需向format提供要設定其格式的未命名引數,並在格式字串中使用未命名字段。format 1,2,foo 3,bar 4 3 1 4 2 數和字串的對齊...

簡明Python基礎教程二

檔案操作 檔案內建方法 open成功執行並返回乙個檔案物件之後,所有對該檔案的後續操作都通過這個 控制代碼 進行,操作包括 輸入 輸出 檔案內移動或者雜項操作。幾個例子 1.read 方法 2.readlines方法 3 write 方法 sys模組通過sys.arv屬性提供了對命令列引數的訪問,命...

python基礎教程

乙個簡單的客戶機 import socket s socket.socket host socket.gethostname port 1234 s.bind host,port s.listen 5 while true c,addr s.accept print got connection f...