函式基礎
第五次
什麼是函式
函式是組織好的,可以重複使用的,用來實現單一或相關功能的程式碼段。
自己創造的函式叫什麼 ?叫自定義函式
函式的定義
def 函式名 (引數列表) : # 函式名不建議使用單獨的字母 ,
//實現了特定功能的多行程式碼
[return[返回值]] #返回值如果不寫 就為空 那麼主要是根據實際意義
def bidaxiao(a,b):
if a>b:
return a
elif a<b:
return b
else:
return a
函式的呼叫
函式值=函式名(值或者引數變數)
jieguo=bidaxiao(12,15)
print(jieguo)
定義一個空函式,沒有實際意義的
def konghanshu():
pass
引數的傳遞
形式引數:簡稱形參 定義函式時,函式名後面括號中的引數就是形式引數
實際引數:簡稱實參 就是在呼叫函式時,函式名後面括號中的引數稱為實際引數
值傳遞和引用傳遞的區別
值傳遞適合不可變型別字元患數字元祖,通過函式體不能修改函式外變數的值
引用傳遞適用於可變型別列表字典,通過函式體可以改變函式外引數的值
定義函式-引用傳遞的例子
list1=[1,2,3,4]
def changelist(listn):
list1.append(listn)
呼叫函式
changelist([5,6,7,8])
print(list1)
引數的型別
必須引數,關鍵字引數,預設引數,不定長引數
(1)必須引數
def hanshuming1(canshu1, canshu2):
print(canshu1, canshu2)
呼叫它
hanshuming1(“chuanru1”)
hanshuming1 (“chuanru1”, “chuanru2”)
必須引數:必須以正確的順序傳入引數,呼叫時引數數量必須和申明時一樣
(2)關鍵字引數
是一個特殊的必須引數,他可以通過關鍵宇傳值,
hanshuming1(canshu2=“chuanzhi2”)
hanshuming1 (canshu2=“chuanzhi2” ,canshu1=“chuanzhi1”)
(3) 預設引數:在定義的過程中設定了預設值
定義
def hanshuming2(canshu1,canshu2=‘morenzhi’):
print(canshu1,canshu2)
呼叫
hanshuming1(‘chuanzhi3’)
如果有預設值,我傳入一個新值,新值會覆蓋掉預設值
hanshuming2 (“chuanzhi’”, “chuanzhi4”)
也可以用關鍵寧去傳入引數
anshuming2 (canshu1=“chuanzhi5”)
(4)不定長引數
在定義的過程中,不確定會有多少個引數,就設定成不定長引數
可以在引數前加一個*,或者**,星星:表示不定長引數
(1)引數前面帶一個*,把不確定長度的引數儲存在元組裡,可以通過元祖呼叫其中某一個引數
定義不定長引數
def a(name,*canshuming):
print(name)
print(canshuming)
呼叫不定長引數
a(‘zhangsan’,‘17’,‘changsha’)
(2) 引數前面帶2顆*,把不確定長度的引數儲存在字典裡面
定義
def a(name,**canshuming):
print(name)
print(canshuming)
呼叫
a(‘zhangsan’,nianling=‘17’,dizhi=‘changsha’)
*可以單獨出現,在呼叫的時候必須通過關鍵宇傳值
定義
def a(num1, num2, *, num4):
return num1+num2+num4
print(a(1,2, num4=4))
注意不定長引數可以單獨存在,
def a2(*yu):
print(yu)
a2()
*和**的不定長引數也可以同時被定義
def a3(*shizhisha1,**shizhisha2):
print(shizhisha1)
print(shizhisha2)
a3(1,2,3,name=‘zhangsan’,nianling=‘18’)
函式的巢狀
函式與函之間可以進行相互呼叫
呼叫巢狀:在定義的過程中呼叫另一個函式
def a6():
print(‘nihao a6’)
def b6():
print(‘nihao b6’)
a6()
b6()
定義巢狀:在函式裡面定義函式
def a7():
print(‘nihao a7’)
def b7():
print(‘nihao b7’)
b7()
a7()
函式的遞迴
自己呼叫自己
def a8():
print(‘nihao a8’)
a8()
a8()
注意這樣呼叫會出現死迴圈
def a9():
print(‘nihao a9’)
b9()
def b9():
print(‘nihao b9’)
a9()
b9()
匿名函式lambda表示式
語法:lambda 引數1,引數2,…:表示式
注意,接的是表示式,而不是程式碼塊,必須要用關鍵字lambda
比如現在想通過函式求和
通過普通函式求和
def sum(a,b):
return a+b
print(sum(1,5))
通過函式名函式求和
sum1=lambda a,b:a+b
print(sum1(8,89))
匿名函式和函式的區別
匿名函式不可以使用其他變數,只能對內部引數做運算,函式裡可以使用函式外的引數
模組
為什麼要使用模組
隨著專案功能和需求增多,程式碼量也會加大,把全部程式碼放在一個檔案會顯得冗餘,因此需要使用模組分割槽管理
什麼是python模組?是一個python檔案,以.py結尾
匯入模組
一般匯入的內容放在檔案的最開始
匯入的方式
①
import
eg import time
eg import time()
②
from…import 從某個模組中匯入一個指定的部分
from time import sleep
③
跨目錄呼叫模組
from time import sleep
④
全部匯入
from wenjian1.demo6 import *
import 搜尋路徑
當你匯入一個模組,python直譯器對模組位置有一個搜尋順序
1.當前目錄
2.如果不是當前目錄,python會搜尋總的下面的每一個目錄
3.如果都找不到,python會檢視安裝的預設路徑
相關文章
- 函式基礎和函式引數函式
- Python基礎-函式Python函式
- python函式基礎Python函式
- Go基礎-字串函式Go字串函式
- python基礎函式Python函式
- 前端基礎(三):函式前端函式
- javascript基礎(函式)(十四)JavaScript函式
- SQL 基礎-->常用函式SQL函式
- JavaScript函式及基礎JavaScript函式
- 函式指標基礎函式指標
- golang函式使用基礎Golang函式
- PHP 函式基礎鞏固PHP函式
- PHP->GO 基礎-函式PHPGo函式
- Python基礎(六) 函式Python函式
- Python基礎(10):函式Python函式
- python-函式基礎Python函式
- SQL語言基礎(函式)SQL函式
- 回顧JavaScript基礎——函式JavaScript函式
- python基礎之函式Python函式
- Kotlin基礎之函式Kotlin函式
- 《MySQL 基礎篇》五:函式MySql函式
- C語言基礎函式C語言函式
- python基礎 filter, lambda 函式表示式PythonFilter函式
- python基礎--函式全解析Python函式
- python基礎7 - 函式2Python函式
- NumPy 基礎 (三) - 數學函式函式
- Golang 基礎之函式使用 (三)Golang函式
- 【重溫基礎】4.函式函式
- Golang 基礎之函式使用 (二)Golang函式
- Golang 基礎之函式使用 (一)Golang函式
- strcat函式的基礎認識函式
- Python基礎教程07 - 函式Python函式
- 《Python 基礎篇》五:函式Python函式
- 五、Python函式之基礎Python函式
- 【SQL基礎】T-SQL函式型別——系統函式SQL函式型別
- Python基礎之閉包函式Python函式
- Django基礎三之檢視函式Django函式
- TypeScript基礎入門-函式-簡介TypeScript函式