定義函式 ——封裝獨立的功能
呼叫函式 —— 享受封裝的成果
格式如下:
def函式名():
函式封裝的**
……
def 是英文 define 的縮寫
函式名稱應該能夠表達函式封裝**的功能,方便後續的呼叫
函式名稱的命名應該符合識別符號的命名規則
呼叫函式很簡單的,通過 函式名() 即可完成對函式的呼叫
需求
編寫乙個打招呼 say_hello 的函式,封裝三行打招呼的**
在函式下方呼叫打招呼的**
name = "小明"#直譯器知道這裡定義了乙個函式
defsay_hello():
print("
hello 1")
print("
hello 2")
print("
hello 3")
(name)
#只有在呼叫函式時,之前定義的函式才會被執行
#函式執行完成之後,會重新回到之前的程式中,繼續執行後續的**
say_hello()
print(name)
思考
注意:因為函式體相對比較獨立,函式定義的上方,應該和其他**(包括注釋)保留兩個空行
演練需求
開發乙個 sum_2_num 的函式
函式能夠實現兩個數字的求和功能
演練**如下:
defsum_2_num():
num1 = 10num2 = 20result = num1 +num2
print("
%d + %d = %d
" %(num1, num2, result))
sum_2_num()
思考一下存在什麼問題
函式只能處理固定數值的相加
如何解決?
defsum_2_num(num1, num2):
result = num1 +num2
print("
%d + %d = %d
" %(num1, num2, result))
sum_2_num(50, 20)
在函式內部,把引數當做變數使用,進行需要的資料處理
函式呼叫時,按照函式定義的引數順序,把希望在函式內部處理的資料,通過引數傳遞
注意:return 表示返回,後續的**都不會被執行
defsum_2_num(num1, num2):
"""對兩個數字的求和
"""return num1 +num2
#呼叫函式,並使用 result 變數接收計算結果
result = sum_2_num(10, 20)
print("
計算結果是 %d
" % result)
deftest1():
print("
*" * 50)
print("
test 1")
print("
*" * 50)
deftest2():
print("
-" * 50)
print("
test 2")
test1()
print("
-" * 50)
test2()
函式巢狀的演練 ——列印分隔線
體會一下工作中需求是多變的
需求 1
defprint_line(char):
print("
*" * 50)
需求 2
defprint_line(char):
print(char * 50)
需求 3
defprint_line(char, times):
print(char * times)
需求 4
defprint_line(char, times):
print(char *times)
defprint_lines(char, times):
row =0
while row < 5:
print_line(char, times)
row += 1
模組是 python程式架構的乙個核心概念
步驟
name = "程式設計師"
import my_10_分隔線模組
my_10_分隔線模組.print_line("-", 80)
print(my_10_分隔線模組.name)
體驗小結
模組可以讓曾經編寫過的**方便的被復用!
注意:如果在給 python 檔案起名時,以數字開頭是無法在 pycharm 中通過匯入這個模組的
c 是 compiled編譯過的意思
操作步驟
瀏覽程式目錄會發現乙個 __pycache__ 的目錄
目錄下會有乙個 hm_10_分隔線模組.cpython-35.pyc 檔案,cpython-35 表示 python 直譯器的版本
這個 pyc 檔案是由 python 直譯器將模組的原始碼轉換為位元組碼
python 這樣儲存位元組碼是作為一種啟動速度的優化
位元組碼
首先處理源**,編譯生成乙個二進位制位元組碼
再對位元組碼進行處理,才會生成 cpu 能夠識別的機器碼
模組是 python 程式架構的乙個核心概念
python基礎7 python函式
python基礎知識 一 閉包函式 1 閉包函式的定義 在乙個內部函式中,在對外部作用域 但不是在全域性作用域 的變數進行引用,那麼內部函式就被認為是閉包。2 閉包函式的特點 自帶作用域和延遲計算 補充 1.函式的作用域關係在函式定義階段就已經固定,與呼叫位置無關。無論函式在何處呼叫,都需要回到定義...
python基礎知識梳理 7函式
基本內容梳理 1 函式定義,函式名,函式體以及函式的呼叫方式 2 函式的返回值 3 函式的引數 4 函式 動態傳引數 5 命名空間,區域性名稱的載入順序,全域性命名空間,作用域,載入順序 6 函式的巢狀 7 gloabal,nonlcal關鍵字 一 函式的定義,函式名,函式體以及函式的呼叫方式 1 ...
python基礎筆記 7
異常處理 try except 異常名,異常名 as err 處理except exception as err 捕獲所有異常 處理else 沒有異常則進入 處理finally 無論有沒有異常都要執行 處理python3中一次捕獲多個異常,需要把異常名放在元組內,python2不需要。python2...