全國計算機等級考試二級教程--python語言程式設計(2018年版)第五章:函式和程式碼複用
阿新 • • 發佈:2018-12-23
宣告:本篇文章只是個人知識盲區、知識弱點、重點部分的歸納總結,望各位大佬不喜勿噴。梳理順序是按照書籍的實際順序梳理,轉載請註明出處。
作者:sumjess
一、函式的基本使用:
函式包括:函式的定義和函式的使用。
使用函式的目的:降低程式設計難度、增加程式碼複用、降低程式碼行數和程式碼維護難度。
1、函式的定義:
Python語言通過保留字def定義函式,語法形式如下:
def<函式名>(<引數列表>):
<函式體>
return <返回值列表>
函式名可以是任何有效的python識別符號,引數列表是呼叫該函式時傳遞給它的值。如果需要返回值,使用保留字return和返回值列表。函式可以沒有return語句。
def fact(n): s=1 for i in range(1,n+1): s *= i return s print(fact(4))
2、函式的使用:
呼叫函式的基本方法如下:
<函式名>(<實際賦值引數列表>)
例子同上。
3、函式的使用的四步驟:
1、函式定義:確定函式名、引數名、引數的個數;
2、函式呼叫:;
3、函式執行:;
4、函式返回:;
二、函式的引數傳遞:
1、可選引數傳遞:
函式定義時的語法形式如下:
def <函式名>(<非可選引數列表>,<可選引數> = <預設值>):
<函式體>
return <返回值列表>
需要注意,可選引數一般都放置在非可選引數的後面,即定義函式時,先給出所有非可選引數,然後再分別列出每個可選引數及對應的預設值。
2、引數名稱傳遞:
python語言同時支援函式按照引數名稱方式傳遞引數,語法形式如下:
<函式名>(<引數名> = <實際值>)
這種東西會顯著增強程式的可讀性。
3、函式的返回值:
return語句可以出現在函式中的任何部分,同時可以將0個、1個或多個函式運算的結果返回給函式被呼叫處的變數。
當return返回多個值時,這些值形成了一個元組資料型別,由小括號和逗號分隔,
例如(a,b,c)
def multiply(x,y=10):
return x*y,x+y
s=multiply(99,2)
print(s)
def multiply(x,y=10):
return x*y,x+y
a,b=multiply(99,2)
print(a)
print(b)
當函式使用return返回多個值時,可以使用一個變數或多個變數儲存結果。
三、變數的作用域:
1、區域性變數:
區域性變數指在函式內部定義的變數,僅在函式內部有效,當函式退出時變數將不再存在。
內部的變數,當函式呼叫後,變數將不存在。
2、全域性變數:
全域性變數在函式內部使用時,需要提前使用保留字global宣告:
n=2
def multiply(x,y=10):
global n
return x*y*n
s=multiply(99,2)
print(s)
使用global對全域性變數宣告時,該變數要與外部全域性變數同名。
四、程式碼複用:
使用函式的優點有:可讀性提高、實現程式碼複用、提高封裝級別、增強程式碼可讀性、使程式碼易於維護。
五、例項解析:軟文的詩詞風:
利用程式進行排版。
txt='''
人生得意須盡歡,莫使金樽空對月。
天生我材必有用,千金散盡還復來。
'''
linewidth = 30
def lineSplit(line):
plist = [',','!','?',',','。','!','?']
for p in plist:
line = line.replace(p,'\n')
return line.split('\n')
def linePrint(line):
global linewidth
print(line.center(linewidth,chr(12288)))
newlines = lineSplit(txt)
for newline in newlines:
linePrint(newline)