Python基础—06-函数基础
生活随笔
收集整理的這篇文章主要介紹了
Python基础—06-函数基础
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
函數(shù)基礎
函數(shù)簡介
- 定義:就是具有特定功能的一段代碼
- 優(yōu)點:
- 解決代碼的重復書寫
- 可以將功能的實現(xiàn)著和使用者分開,提高開發(fā)效率
- 分類:
- 庫函數(shù):print、input、abs等
- 自定義:用戶自己封裝的函數(shù)
函數(shù)使用
-
定義函數(shù)格式
def 函數(shù)名([參數(shù)列表]):函數(shù)體?
[]表示可選,參數(shù)可以有,也可以沒有,也可以是多個。
-
函數(shù)名:
- 與變量一樣,只要遵循標識符的命名規(guī)范即可。
-
函數(shù)調(diào)用:
- 函數(shù)定以后不會執(zhí)行,需要調(diào)用才會執(zhí)行
- 調(diào)用格式:函數(shù)名([參數(shù)])
函數(shù)分類(參數(shù)與返回值)
- # 無參無返回值
def print_hello():for i in range(10):print('Hello world!')# print_hello()
# 帶參數(shù)無返回值
def print_n_hello(n):for i in range(n):print('Hello world!') # print_n_hello(5)# 帶參有返回值
def add(m, n):c = m + n# 使用return返回需要返回的值,不返回默認為Nonereturn c print(add(3, 5))
?
分類的標準是按照有無參數(shù),以及有無返回值。
函數(shù)參數(shù)
-
形參:形式參數(shù),就是寫在函數(shù)定義出的參數(shù)
-
實參:實際參數(shù),就是在函數(shù)調(diào)用時傳遞的參數(shù)
-
位置參數(shù):也叫必傳參數(shù),沒有默認值的參數(shù)
-
默認參數(shù):定義時有默認值,調(diào)用時可以不傳,必須寫在最后
-
關鍵字參數(shù):在函數(shù)調(diào)用時指定參數(shù)名字,參數(shù)的位置就無所謂。
-
可變長度參數(shù):函數(shù)調(diào)用時可以傳遞比定義處更多的參數(shù),多出來的參數(shù)會保存在args和kwargs中
def var_len_args(a, b, name='goudan', *args, **kwargs):print(a, b)print(name)# 是一個元組,保存多傳的位置參數(shù)print(args)# 是一個字典,保存多傳的關鍵字參數(shù)print(kwargs)var_len_args(1, 2, 3, 4, age=10)?
-
*的使用:
def show(a, b):print(a, b)lt = [1, 2] # 需要從列表根據(jù)下表獲取元素,然后作為參數(shù)傳遞 # show(lt[0], lt[1]) show(*lt)def show2(aa=11, bb=22):print(aa, bb)d = {'aa': 123, 'bb': 456} # show2(aa=d['aa'], bb=d['bb']) # 上下等價 show2(**d)?
函數(shù)進階
- 函數(shù)的定義位置是隨意的?
- 不是,一定是先定義后調(diào)用,函數(shù)的調(diào)用一定要放在定義之后。
- 函數(shù)的名字可以相同嗎?
- 不可以,若出現(xiàn)同名函數(shù),后者會覆蓋前者。
- 函數(shù)內(nèi)容能否再定義函數(shù)?
- 可以,定義在函數(shù)內(nèi)部的函數(shù)叫內(nèi)部函數(shù),它是很多高級功能實現(xiàn)的基礎。
變量的作用域
-
塊級作用域
if True:name = 'guanyu'# 能夠在塊的外部使用,說明沒有塊級作用域 print(name)?
-
局部作用域
- 局部變量:定義在函數(shù)內(nèi)部的變量叫局部變量,只能在函數(shù)內(nèi)部使用。
?
-
全局作用域
- 全局變量:定義在函數(shù)外部的變量叫全局變量,哪里都可以使用
?
- 函數(shù)內(nèi)部可以使用外部變量,但是不能修改
- 若修改需要使用global進行全局聲明
- 當函數(shù)內(nèi)部與外部出現(xiàn)同名變量,默認使用的時內(nèi)部變量
-
nonlocal使用
- 說明:內(nèi)部函數(shù)使用外部函數(shù)的局部變量,需要使用nonlocal進行聲明
?
遞歸函數(shù)(了解)
- 定義:函數(shù)內(nèi)部調(diào)用函數(shù)本身的函數(shù)叫遞歸函數(shù)。
- 組成:
- 函數(shù)內(nèi)部調(diào)用自己
- 終止條件(停止調(diào)用自己的條件)
- 核心算法(具體功能)
- 特點:
- 代碼簡潔
- 可讀性差(不易理解)
- 瞬間占用內(nèi)存較大,沒有終止條件立即崩潰
- 有些領域是禁止使用的(安全領域:汽車電子)
- 只有在不得不使用的時候才使用(遍歷目錄)
- 練習:(可以做個小練習來鞏固)
- 求n的階乘
- 斐波那契數(shù)列的第n項
- 前兩項都為1,從第三項開始,每一項都等于前兩項的和
- 如: 1,1,2,3,5,8,13,21,...
?
常用函數(shù)
-
內(nèi)置函數(shù)(無需導入)
print:打印,輸出 input:輸入 abs:求絕對值 type:獲取變量的類型 chr:將ASCII數(shù)值轉(zhuǎn)換為字符 ord:將字符轉(zhuǎn)換為對應的ASCII id:獲取變量地址 len:統(tǒng)計元素個數(shù) range:產(chǎn)生連續(xù)整數(shù)的可迭代對象 enumerate:枚舉可迭代對象強制類型轉(zhuǎn)換: int float str list tuple set dictmax:求多個參數(shù)的最大值,或可迭代對象中的最大元素 min:最小值 sum:求和,可迭代對象元素求和 pow:求冪,pow(2, 3)等價于2 ** 3 round:四舍五入,可以指定保留位數(shù)hex:16進制 oct:8進制 bin:2進制?
-
模塊函數(shù)(需要導入)
time:sleep:休眠指定的秒數(shù),可以是小數(shù) math:e:自然對數(shù)pi:圓周率ceil:向上取整floor:向下取整sqrt:開方(請平方根)degrees:弧度轉(zhuǎn)換為度radians:度轉(zhuǎn)換為弧度 sys:argv:運行程序時所有的命令行參數(shù)列表,第一個是程序文件名練習:完成一個計算器,支持加、減、乘、除運算?
?
轉(zhuǎn)載于:https://www.cnblogs.com/swjblog/p/9671007.html
總結(jié)
以上是生活随笔為你收集整理的Python基础—06-函数基础的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一文精讲Wireshark的抓包和分析
- 下一篇: python中的列表,添加元素,获取元素