Python編程基礎之函數和模塊
一、函數和模塊概述
(一)函數概述
函數可以看成是語句的集合,通過函數調用來執行其包含的語句。函數可以返回一個計算結果,根據每次函數調用的參數,可以返回不同的計算結果。Python利用函數提高代碼的重用率,減少瞭代碼冗餘。
執行dir(__builtin__)
可以查看Python所有內置對象
['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError', 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'False', 'FileExistsError', 'FileNotFoundError', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 'InterruptedError', 'IsADirectoryError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'ModuleNotFoundError', 'NameError', 'None', 'NotADirectoryError', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning', 'PermissionError', 'ProcessLookupError', 'RecursionError', 'ReferenceError', 'ResourceWarning', 'RuntimeError', 'RuntimeWarning', 'StopAsyncIteration', 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'TimeoutError', 'True', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning', 'WindowsError', 'ZeroDivisionError', '__IPYTHON__', '__build_class__', '__debug__', '__doc__', '__import__', '__loader__', '__name__', '__package__', '__spec__', 'abs', 'all', 'any', 'ascii', 'bin', 'bool', 'breakpoint', 'bytearray', 'bytes', 'callable', 'cell_count', 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits', 'debugcell', 'debugfile', 'delattr', 'dict', 'dir', 'display', 'divmod', 'enumerate', 'eval', 'exec', 'filter', 'float', 'format', 'frozenset', 'get_ipython', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'range', 'repr', 'reversed', 'round', 'runcell', 'runfile', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip']
演示Python內置函數
(二)模塊概述
模塊是程序代碼和數據的封裝。模塊中定義的變量、函數或類等可導入到其他文件中使用。Python正是通過模塊提供各種功能,例如,在前面用到的sys
、os
、math
、random
等都是模塊。
1、sys模塊
查看sys模塊包含的對象(屬性和方法)
使用sys模塊的path
2、os模塊
導入os模塊
獲取當前工作目錄
3、math模塊
4、random模塊
二、函數
- 在編寫程序時,往往會遇到在多處使用的類似代碼。這時,可將重復代碼提取出來,定義為函數。從而簡化編程工作量,也使代碼結構簡化。
- 函數有三要素:函數名(
function name
)、參數列表(parameter list
)、返回值(return value
) - 參數有兩種類型:位置參數(
positional parameter)、
鍵參數(key parameter
)
(一)定義函數
1、語法格式
def: define
def 函數名(參數表): 函數體(語句組) return 返回值
如果我們定義一個函數,沒有寫return語句,系統會自動給它添加一個return None
2、函數類型
- 無參函數
- 單參函數
- 多參函數
3、案例演示
定義無參函數
定義單參函數(調用時可以用位置參數,也可以用鍵參數)
定義多參函數
說明:定義函數時的參數叫做形式參數(formal paramter),簡稱形參(虛參);調用函數時的參數叫做實際參數(actual parameter),簡稱實參。調用函數,就是將實參傳遞給形參,進行處理之後,得到返回值。
定義有返回值的函數
(二)調用函數
1、簡要說明
- 函數通過函數名加上一組圓括號進行調用,參數放在圓括號內,多個參數之間用逗號分隔。
- 在Python中,所有的語句都是實時執行的,不像C/C++存在編譯過程。def也是一條可執行語句,定義一個函數。所以函數的調用必須在函數定義之後。
- 在Python中,函數名也是一個變量,它引用return語句返回的值,沒有返回值時,函數值為None。
2、案例演示
編寫並調用階乘函數 – factorial(n)
運行程序,查看結果
(三)函數參數
在定義函數時,參數表中的各個參數稱為形式參數,簡稱形參。調用函數時,參數表中提供的參數稱為實際參數,簡稱實參。在Python中,變量保存的是對象的引用,類似C/C++中的指針。實參傳遞給形參就是將對象的引用賦值給形參。
1、參數的多態性
多態是面向對象的一個特點,指多一個行為針對不同對象可能會得到不同的結果。Python中的變量無類型屬性,變量可引用各種不同類型的對象。同一個函數,傳遞的實際參數類型不同時,可獲得不同的結果,體現瞭多態性。
2、參數賦值傳遞
通常,函數調用時按參數的先後順序,將實參傳遞給形參。例如:調用add(1, 2.5)時,1傳遞給a,2.5傳遞給b。Python允許以形參賦值的方式,指定將實參傳遞給形參。
三、利用函數實現模塊化
1、創建多級菜單系統
編寫程序 – 多級菜單系統.py
# -*- coding: utf-8 -*- """ 功能:多級菜單系統 作者:華衛 日期:2021年1月4日 """ def add_record(): print('添加記錄功能尚待開發') def query_record(): print('查詢記錄功能尚待開發') def modify_record(): print('修改記錄功能尚待開發') def delete_record(): print('刪除記錄功能尚待開發') def login(): while True: print('主菜單') print('=============') print('1. 增加記錄') print('2. 查詢記錄') print('3. 修改記錄') print('4. 刪除記錄') print('5. 返回上級菜單') print('==============') mc2 = int(input('輸入菜單號:')) if mc2 == 1: add_record() elif mc2 == 2: query_record() elif mc2 == 3: modify_record() elif mc2 == 4: delete_record() else: break while True: print('============') print('1. 登錄') print('2. 退出') print('============') mc1 = int(input('輸入菜單號:')) if mc1 == 1: login() elif mc1 == 2: print('謝謝使用!') break
2、啟動程序,查看效果
總結
篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!
推薦閱讀:
- 基於Python實現電影售票系統
- python變量作用域與列表入門詳解
- 14道基礎Python練習題(附答案)
- Python通過pymysql調用MySQL進行增刪改移查
- Python實現簡單的學生信息管理系統