python基礎7 函式

2022-09-03 08:51:09 字數 3685 閱讀 3844

定義函式 ——封裝獨立的功能

呼叫函式 —— 享受封裝的成果

格式如下:

def

函式名():

函式封裝的**

……

def 是英文 define 的縮寫

函式名稱應該能夠表達函式封裝**的功能,方便後續的呼叫

函式名稱的命名應該符合識別符號的命名規則

呼叫函式很簡單的,通過 函式名() 即可完成對函式的呼叫

需求

編寫乙個打招呼 say_hello 的函式,封裝三行打招呼的**

在函式下方呼叫打招呼的**

name = "小明"

#直譯器知道這裡定義了乙個函式

defsay_hello():

print("

hello 1")

print("

hello 2")

print("

hello 3")

print

(name)

#只有在呼叫函式時,之前定義的函式才會被執行

#函式執行完成之後,會重新回到之前的程式中,繼續執行後續的**

say_hello()

print(name)

思考

注意:因為函式體相對比較獨立函式定義的上方,應該和其他**(包括注釋)保留兩個空行

演練需求

開發乙個 sum_2_num 的函式

函式能夠實現兩個數字的求和功能

演練**如下:

def

sum_2_num():

num1 = 10num2 = 20result = num1 +num2

print("

%d + %d = %d

" %(num1, num2, result))

sum_2_num()

思考一下存在什麼問題

函式只能處理固定數值的相加

如何解決?

def

sum_2_num(num1, num2):

result = num1 +num2

print("

%d + %d = %d

" %(num1, num2, result))

sum_2_num(50, 20)

在函式內部,把引數當做變數使用,進行需要的資料處理

函式呼叫時,按照函式定義的引數順序,把希望在函式內部處理的資料通過引數傳遞

注意:return 表示返回,後續的**都不會被執行

def

sum_2_num(num1, num2):

"""對兩個數字的求和

"""return num1 +num2

#呼叫函式,並使用 result 變數接收計算結果

result = sum_2_num(10, 20)

print("

計算結果是 %d

" % result)

def

test1():

print("

*" * 50)

print("

test 1")

print("

*" * 50)

deftest2():

print("

-" * 50)

print("

test 2")

test1()

print("

-" * 50)

test2()

函式巢狀的演練 ——列印分隔線

體會一下工作中需求是多變

需求 1

def

print_line(char):

print("

*" * 50)

需求 2

def

print_line(char):

print(char * 50)

需求 3

def

print_line(char, times):

print(char * times)

需求 4

def

print_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...