自學python 函式

2021-10-19 06:56:03 字數 4585 閱讀 7666

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

函式能提高應用的模組性,和**的重複利用率。你已經知道python提供了許多內建函式,比如print()。但你也可以自己建立函式,這被叫做使用者自定義函式

內建函式 說明

語法:

python 定義函式使用 def 關鍵字,一般格式如下:

def 函式名(引數列表):

函式體預設情況下,引數值和引數名稱是按函式宣告中定義的順序匹配起來的。

規則你可以定義乙個由自己想要功能的函式,以下是簡單的規則:

2.任何傳入引數和自變數必須放在圓括號中間,圓括號之間可以用於定義引數。

3.函式的第一行語句可以選擇性地使用文件字串—用於存放函式說明。

4.函式內容以冒號起始,並且縮排。

5.return [表示式] 結束函式,選擇性地返回乙個值給呼叫方。不帶表示式的return相當於返回 none。

def showinfo():

"""定義列印個人資訊函式

:return:

"""print("*****==個人資訊*****")

print("名字:admin")

print("密碼:123")

#呼叫showinfo()

1 有參有返回值

2 有參無返回值

3 無參有返回值

4 無參無返回值

#**********==無參無返回值**********==

def showinfo():

"""定義列印個人資訊函式

:return:

"""print("*****==個人資訊*****")

print("名字:admin")

print("密碼:123")

#**********==無參有返回值**********==

#return 結束函式

# 1如果函式體中沒有if while 控制流,那麼在return 新增語句是無效

# 2 函式的返回型別保持一致,可以不一樣

def get_name():

print("getname1")

print("getname2")

number=1

if number==1:

return 1

elif number==2:

return "2"

#print(get_name())

#**********==有參無返回值**********==

# name 形參

def showinfo1(name,age):

print("有參無返回值")

print(name,age)

#n = "a" # 實參

#showinfo1(n,1)

#**********==有參有返回值**********==

def getnumber(number1,number2):

return number1+number2

print(getnumber("1","2"))

#全域性變數

#在函式外宣告的變數,叫全域性變數

#作用範圍多個函式

number=2 #全域性變數

# 區域性變數 在函式中宣告變數叫區域性變數

#作用範圍 當前函式

# 當函式執行完,則釋放記憶體

# 如果說全域性變數和區域性變數名字一樣,在函式中優先順序高的是區域性變數

def getnumber1():

number=1 #區域性變數

print(number)

def getnumber2():

print(number)

#getnumber2()

# getnumber1()

#當內部作用域想修改外部作用域的變數時,就要用到global關鍵字了

count = 1

def change():

global count # 說明count是全域性變數

count = 3

print(count)

change()

print(count)

#引數傳遞

# 不可變的物件做引數是,傳值 (strings, tuples, 和 numbers 是不可更改的物件)

def change(number):

number=number+1

print("函式內",number)

number= 1

#呼叫函式

#change(number)

#print("函式外:",number)

def changelist(names):

print("函式內",names)

names=["tom","jack"]

changelist(names)

print("函式外:",names)

必備引數

· 關鍵字引數

· 預設引數

· 可變引數

#引數的型別

# ***************=必備引數***************

#必備引數須以正確的順序傳入函式。呼叫時的數量必須和宣告時的一樣。

def showinfo(name,age):

print(name,age)

#showinfo("admin",22)

# **********==關鍵字引數***************====

#使用關鍵字引數允許函式呼叫時引數的順序與宣告時不一致

def showinfo2(name,age):

print(name,age)

#showinfo2(age=22,name="admin")

def showinfo3(name,age,**other):

print(name,age,other)

#showinfo3("admin","22")

#showinfo3(name="admin",age=22,address="北京市")

mes=

#showinfo3(name="admin",age=22,**mes)

# ***************=預設引數**********==

#呼叫函式時,預設引數的值如果沒有傳入,則被認為是預設值

def showinfo4(name,age=0):

print(name,age)

#showinfo4("admin")

# *****=可變引數*****====

def showinfo5(name,*kws):

print(name,kws)

number=[12,322,1]

showinfo5("admin",*number)

#***************== 字典做關鍵字和普通的引數的區別***************=

#字典做普通引數 傳位址

def changedict(student):

student["name"]="tom"

print("函式內",student)

# student =

# changedict(student)

# print("函式外:",student)

#字典做關鍵字 傳值

def changedict(**student):

student["name"]="tom"

print("函式內",student)

student =

changedict(**student)

print("函式外:",student)

#匿名函式

#lambda只是乙個表示式,函式體比def簡單很多。

#而不是乙個**塊。僅僅能在lambda表示式中封裝有限的邏輯進去。

# 預設有返回值

import random

#語法:lambda [arg1 [,arg2,.....argn]]:expressio

result = lambda number1 ,number2 ,number3: (number2-number1)*number3

#print(result(2,3))

# def getnumber(number):

# if number>5:

# return true

# **********==== 實際應用的場景***************==

numbers=[random.randint(1,20) for number in range(10)]

print(numbers)

#numbers2 = filter(getnumber,numbers)

numbers2 = filter(lambda number :number>5,numbers)

print(list(numbers2))

自學Python之函式

python的函式比其他語言要簡潔一點,不需要指標,也不要引數型別,形式引數只要隨便一寫就行了。乙個小例子實現兩個數相加 def fun a,b c a b print c fun 2,3 就這麼簡單就實現啦!輸出結果為5 要注意的是這裡傳遞的引數必須數量一致,意思就是說函式要求兩個引數,你不能傳遞...

Python自學筆記004 函式

def function a,b print this is a function.c a b print a b c 這裡執行之後需要我們呼叫這個函式 function 3,4 這裡面表示傳入函式的引數值 this is a function.a b 7如果在呼叫時忘記了引數的位置,只記得引數的名...

Python 自學筆記7 函式

1.使用函式的目的 模組化,便於處理 2.函式的定義 def function 2.函式文件 def myfirstfunction name 函式文件在函式定義的最開頭部分,此部分就是函式文件,用不記名字串表示 print i love fishc.com 函式的文件字串可以按如下方式訪問 myf...