1. 程式人生 > >Python 筆記——4 條件控制

Python 筆記——4 條件控制

上一章講了Python的資料型別及其用法,這一章來講解Python的條件控制。

1、if 條件

if條件應該是所有程式語言中最經典的控制條件,但在python中,可以使用elif作為else if 的縮寫。請注意:Python是一門強調縮排的語言,在if的條件後加入:表示這裡是執行語句的入口,然後下一行必須按TAB縮排,下面的elif必須與上面同級的if對齊。

>>> x = int(input("請輸入一個整數:"))
請輸入一個整數:11
>>> if x == 0:
    print(0)
elif x > 0:
    print
(x) else: print(-1) 11

  那麼在python中的三元表示式怎麼寫呢?x if y else z,假若滿足條件y,則返回x,否則返回z。

>>> x = 1
>>> y = 2
>>> "123" if  x > y else "321"
'321'

2、for

python中的for與C#中的foreach 和 JAVA中的for有點相像。它能夠遍歷迭代器。下面我做了一個example,在py檔案的資料夾中新建一個txt檔案,裡面放好我要遍歷的文字。在py檔案中定義函式main,首先開啟test.txt,把所有行讀取出來,給x賦值,打印出來以後發現是一個列表。當我使用for 來遍歷x的時候,從x中讀取每一行賦值給line,print之。

def main():
    fh = open('test.txt')
    x = fh.readlines()
    print x
    for line in x:
        print(line)


if __name__ == "__main__" : main()

['1 hi\n', '2 hello\n', '3 hello world']
1 hi

2 hello

3 hello world

3、while

while迴圈和其他語言沒有什麼區別,當while中的條件為true的時候執行,否則結束迴圈。

def main():
        i,j 
= 1,0 while (i <= 100): j,i = j+i,i+1 print(j) if __name__ == "__main__" : main() 5050

4、enumerate函式

雖然這一節講的條件控制,但是是在介紹for的時候不得不說一下enumerate這個函式。每一次它會返回兩個值,第一個是index,第二個是值。

def main():
        str = 'HelloWorld'
        for i,s in enumerate(str):
                if s == "o":print('index {} is {}'.format(i,s))

if __name__ == "__main__" : main()


index 4 is o
index 6 is o

5、break、continue、else

break表示跳出該迴圈,continent表示繼續執行下一步,而else則是在迴圈結束時自動呼叫。在下面的程式中,有一個叫做range的函式,它有三種模式。

range(x)、range(x,y)、range(x,y,z)。第一種是從0開始遍歷到x-1,第二種是從x開始遍歷到y-1,第三種是從x開始遍歷到y-1,但步長為z。

def main():
        for x in range(1,10):
                for y in range(1,x):
                        if y == 5:
                                break
                else:
                        print(x),'break'
        i = 0
        for z in range(1,10):
                if (z % 2 == 0):
                        continue
                else:
                        print z,'continue'

if __name__ == "__main__" : main()

1 break
2 break
3 break
4 break
5 break
1 continue
3 continue
5 continue
7 continue
9 continue

  最近有點事,要研究新演算法,更新速度有點慢,內容也有點少,不過這些都是python比較基礎的東西,在我寫完預計的18-20章以後,再寫一些專案例項。