什麼是函式
函式是組織好的,可以重複使用的,用來實現單一或相關功能的**段。
自己創造的函式叫什麼 ?叫自定義函式
函式的定義
def 函式名 (引數列表) : # 函式名不建議使用單獨的字母 ,
//實現了特定功能的多行**
[return[返回值]] #返回值如果不寫 就為空 那麼主要是根據實際意義
def bidaxiao(a,b):
if a>b:
return a
elif a定義乙個空函式,沒有實際意義的
def konghanshu():
pass
呼叫函式
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基礎10 函式初識
1 的組織結構不清晰,可讀性差 2 遇到重複的功能只能重複編寫實現 冗餘 3 功能需要擴充套件時,需要找出所有實現該功能的地方修改之,無法統一管理且維護難度極大 內建函式 為了方便我們開發,一些簡單的功能,python直譯器已經為我們定義好了函式,即內建函式。內建函式我們可以直接呼叫,不用事前先定義...
python基礎 day 10 函式初識
一 內容回顧 1 檔案的操作 檔案操作三部曲 1 開啟檔案 2 檔案的控制代碼操作 3 關閉檔案 檔案路徑pat,encoding,mode 2 讀 寫 追加 檔案讀取 r,rb,r r b read 全部讀取 readline 一行一行讀取 strip readlines 全部讀取出來,每一行構造...
Python基礎初識
python的創始人為吉多 範羅蘇姆 guido van rossum 1989年的聖誕節期間,吉多 範羅蘇姆 中文名字 龜叔 為了在阿姆斯特丹打發時間,決心開發乙個新的指令碼解釋程式,作為abc語言的一種繼承。龜叔 2005年加入谷歌至2012年,2013年加入dropbox直到現在,依然掌握著p...