函式基礎初識

2021-10-24 15:44:34 字數 3274 閱讀 8311

什麼是函式

函式是組織好的,可以重複使用的,用來實現單一或相關功能的**段。

自己創造的函式叫什麼 ?叫自定義函式

函式的定義

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...