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