Python語法 之 結構與函數

綜述:計算機的流程控制主要通過三種結構來控制的:順序結構,選擇結構,循環結構。下面講述下python語言的這三種結構的語法模式。

選擇結構

並列if語句

所謂選擇結構就是一個或多個條件判斷,及其執行語句組成的代碼模塊。python的基本if語句的結構模式大致如下:

if <判斷條件1>:
    <執行語句1>
elif <判斷條件2>:
    <執行語句2>
(中間可以有多個這樣的條件判斷及執行語句)
else:
    <執行語句3>

大致邏輯:如果條件1爲真則執行語句1,現時語句2、3不執行,否則再判斷條件2,如果條件2爲真則執行語句2同時語句3不再執行,否則執行語句3。

例子:

# -*- coding: utf-8 -*-
x = int(input("請輸入您的總分:"))
if x >= 90:
    print('優')
elif x >= 80:
    print('良')
elif x >= 70:
    print('中')
elif x >= 60:
    print('合格')
else:
    print('不合格')

效果如下圖所示:
這裏寫圖片描述

三元運算符

python中三元運算符基本形式:<表達式1>if<條件>else<表達式2>。其邏輯大致是如果條件爲真則整個三元運算符的值是表達式1的值,如是條件爲假則整個三元運算符的值是表達式2的值。三元運算符的另一種形式爲:<條件>and<表達式1>or<表達式2>。
見如下例子:

# -*- coding: utf-8 -*-
x = int(input("請輸入您的總分:"))
y = '及格' if x >= 60 else '不及格'
print y
y = '合格' if x >= 60 else '不合格'
print y

結果如下圖:
這裏寫圖片描述

if語句嵌套

if語句的嵌套的大致形式如下

if<條件A><語句A>
    if<條件a>
        <語句a>
    elif<條件b>
        <語句b>
    elif<條件c>
        <語句c>
    else
else:
    <語句B>

大致邏輯:如果滿足條件A,則先執行語句A,再執行並列if語句a,b,c。如果不滿足語句B,則執行語句B。

例子:::

# -*- coding: utf-8 -*-
x = int(input("請輸入您的總分:"))
if x >= 60:
    print('及格,屬於:')
    if x >= 90:
        print('優')
    elif x >= 80:
        print('良')
    else:
        print('中')
else:
    print('不及格')

效果如下圖:
這裏寫圖片描述

循環結構

for循環結構

與其他編程語言用循環控制變量來控制循環不同的是,python中for語句是通過循環遍歷某一序列對象(字符串,列表,元組)來構建循環,循環的結束的條件是對象被遍歷完成。for語句的基本形式如下:

for <循環變量> in <循環對象><語句1>
else:
    <語句2>

注意其中的else語句是區別於其他編程語言的,只有在for循環正常退出時才執行。
for循環語句的邏輯是依次遍歷循環對象的每個變量賦值給循環變量,如果循環對象未結束,則循環執行語句1,如果循環對象結束,則進入else分支執行語句2,結束整個循環。

# -*- coding: utf-8 -*-
tuplesuc = (0,1,2,3,4,5,6,7,8,9)
for num in tuplesuc:
    print("%d" % num)
else:
    print("All Tuple")

效果如下:
這裏寫圖片描述

while循環控制

while循環的結構如下:

while<條件><語句1>
else:
    <語句2>

while循環的邏輯是,如果條件爲真則制循環執行語句1,直到條件爲假時執行語句2後跳出整個while模塊。
例子

# -*- coding: utf-8 -*-
count = 0
while count < 5:
    print(count, "is less than 5")
    count += 1
else:
    print(count, "is not less than 5")

效果如下:
這裏寫圖片描述

循環常用控制語句

break語句

用在for循環或while循環的循環體中,在其本身未達到循環結束條件時,提前結束循環語句。
例如:

# -*- coding: utf-8 -*-
count = 0
while count < 5:
    print(count, "is less than 5")
    if count == 3:
        break
    count += 1
else:
    print(count, "is not less than 5")

效果如下圖:
這裏寫圖片描述

這裏要注意到,如果是break結束循環體,則else的語句並不執行。

continue語句

continue語句用在while和for循環中,continue 語句用來告訴Python跳過當前循環的剩餘語句,然後繼續進行下一輪循環。 continue 語句跳出本次循環,而break跳出整個循環。
例子:

# -*- coding: utf-8 -*-
count = 0
while count < 5:
    print(count, "is less than 5")
    count += 1
    if count == 3:
        continue
    print('!')
else:
    print(count, "is not less than 5")

效果如下:
這裏寫圖片描述

range函數

range( [start,] stop [, step])以start爲起始值,stop爲結束值,step爲步長依次生成一個迭代值。需要注意的是,range() 函數返回的對象表現爲它是一個列表,但事實上它並不是,range()函數並不是在調用時一次生成整個序列,而是遍歷一次才產生一個值,以減少內存的佔用,其本質是一個迭代器。step可以不設置,默認爲1。start可以不設置,默認爲0;

# -*- coding: utf-8 -*-
for i in range(5):
    print i
else:
    print 'over'

for i in range (6, 16, 2):
    print i
else:
    print 'over'

效果如下:
這裏寫圖片描述

pass語句

pass是空語句,是爲了保持程序結構的完整性。pass 不做任何事情,一般用做佔位語句。

函數

python中函數的定義與聲明是被視爲一體的,這與C語言不同。python中函數的基本定義形式如下:

def 函數名(參數1,參數2...,參數n):
    函數體(語句塊)
    return [返回值]

1、函數的命名規則要符合Python中標識符的命名要求
2、def是定義函數的關鍵詞,不用指定函數返回值類型
3、函數後面是圓括號,可以有參數列表,也可以沒有參數
4、括號後面的冒號一定要有
5、緊接着def語句縮進四個空格的部分都是都是函數體

例子:

def add(x,y):
    return x+y

print (add(3.2, 2.4), add(3,5))

效果如下:
這裏寫圖片描述

python 在定義函數時並沒有明確參數類型,因爲python中變量無類型,對象纔有類型,所以參數x,y可以用來引用任何對象,後面的返回結果會根據對象的類型來返回。
只要在形參表末尾的那些參數可以有默認參數值,即你不可以在聲明函數形參的時候,先聲明有默認值的參數而後聲明沒有默認值的參數。這是因爲賦給形參的值都是根據位置而賦值的

函數帶默認參數的定義形式:

/*有效*/
def add(x,y=1):
    return x+y

/*無效*/
def add(x = 1, y):
    return x+y
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章