Python基础05 缩进和选择
縮進(jìn)
Python最具特色的是用縮進(jìn)來標(biāo)明成塊的代碼。我下面以if選擇結(jié)構(gòu)來舉例。if后面跟隨條件,如果條件成立,則執(zhí)行歸屬于if的一個(gè)代碼塊。
?
先看C語言的表達(dá)方式(注意,這是C,不是Python!)
if ( i > 0 ) {x = 1;y = 2; }如果i > 0的話,我們將進(jìn)行括號(hào)中所包括的兩個(gè)賦值操作。括號(hào)中包含的就是塊操作,它隸屬于if。
?
在Python中,同樣的目的,這段話是這樣的
if i > 0:x = 1y = 2在Python中, 去掉了i > 0周圍的括號(hào),去除了每個(gè)語句句尾的分號(hào),表示塊的花括號(hào)也消失了。
多出來了if ...之后的:(冒號(hào)), 還有就是x = 1 和 y =2前面有四個(gè)空格的縮進(jìn)。通過縮進(jìn),Python識(shí)別出這兩個(gè)語句是隸屬于if。
?
Python這樣設(shè)計(jì)的理由純粹是為了程序好看。
?
if語句
寫一個(gè)完整的程序,命名為ifDemo.py。這個(gè)程序用于實(shí)現(xiàn)if結(jié)構(gòu)。
i = 1 x = 1 if i > 0:x = x+1 print x$python ifDemo.py? # 運(yùn)行
程序運(yùn)行到if的時(shí)候,條件為True,因此執(zhí)行x = x+1,。
print x語句沒有縮進(jìn),那么就是if之外。
?
如果將第一句改成i = -1,那么if遇到假值 (False),?x = x+1隸屬于if, 這一句跳過。?print x沒有縮進(jìn),是if之外,不跳過,繼續(xù)執(zhí)行。
?
這種以四個(gè)空格的縮進(jìn)來表示隸屬關(guān)系的書寫方式,以后還會(huì)看到。強(qiáng)制縮進(jìn)增強(qiáng)了程序的可讀性。
?
復(fù)雜一些的if選擇:
i = 1if i > 0:
? ? print 'positive i'i = i + 1 elif i == 0:
? ? print 'i is 0'i = i * 10 else:
? ? print 'negative i'i = i - 1
print 'new i:',i
這里有三個(gè)塊,分別屬于if, elif, else引領(lǐng)。
Python檢測(cè)條件,如果發(fā)現(xiàn)if的條件為假,那么跳過后面緊跟的塊,檢測(cè)下一個(gè)elif的條件; 如果還是假,那么執(zhí)行else塊。
通過上面的結(jié)構(gòu)將程序分出三個(gè)分支。程序根據(jù)條件,只執(zhí)行三個(gè)分支中的一個(gè)。
整個(gè)if可以放在另一個(gè)if語句中,也就是if結(jié)構(gòu)的嵌套使用:
if i > 2 后面的塊相對(duì)于該if縮進(jìn)了四個(gè)空格,以表明其隸屬于該if,而不是外層的if。
?
總結(jié)
if語句之后的冒號(hào)
以四個(gè)空格的縮進(jìn)來表示隸屬關(guān)系, Python中不能隨意縮進(jìn)
if? <條件1>:
??? statement
elif <條件2>:
??? statement
elif <條件3>:
??? statement
else:
??? statement
總結(jié)
以上是生活随笔為你收集整理的Python基础05 缩进和选择的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python基础04 运算
- 下一篇: Python基础06 循环