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