函式的基礎知識整理
阿新 • • 發佈:2019-02-09
#函式的定義與使用
#函式的定義與使用 #1.無引數的函式: #定義函式,並不會執行; def hello(): #函式體 print('hello') #呼叫函式 hello() print(len('hello')) #2.帶有引數的函式 def fun1(name): #name='xijiao' #定義函式時的變數稱為形式引數,其變數名可以隨便任意起; print('hello %s'%(name)) fun1('xijiao') #在呼叫函式時的引數稱為實際引數,此引數是必須要存在的。 #函式返回值與return語句 #呼叫函式時一般有返回值;沒有返回值時,在python中預設返回值為None def hello(): print('hello') res=hello() #將函式呼叫賦給一個變數 print(res) #列印該變數 def hello(): #return 返回時返回的是的表示式或者變數 return 'hello' res=hello() print(res) #return的應用 #隨機生成20個學生成績,判斷這20個學生成績的等級: import random # 倒入random模組,這是一個隨機生成工具 def level(score): #定義帶有引數成績的等級函式 if 90<score<=100: return 'A' #return返回'A' elif 80<score<=90: return 'B' elif 70<score<=80: return 'C' else: return 'D' def main(): #定義主函式 for i in range(20): score = random.randint(1,100) #隨機生成20個1-100的整數成績 print('成績為%s:等級為%s'%(score,level(score))) main() #執行主函式 scores=[] # 定義一個空列表 for i in range (20): #隨機生成所有的成績 scores.append(random.randint(1,100)) for score in scores: #根據所有的成績來判斷等級 print('成績為%s,等級為%s'%(score,level(score))) #None的解釋: #在C中:布林值為ture,false,但是在python中,布林值為Ture,False #一般情況下,當沒有返回值的時候,我們可以將其定義為None,或者在C或者java中,空可以定義為null,nil,undefined var=None print(type(var)) #<class 'NoneType'> a=print() print(a) #列印結果為None #當函式如果有返回值,可以講函式賦值給一個變數: m=max([1,2,3,4,5]) #將列表的最大值賦給m print(m) #列印結果為5 #返回值有多個時 def fun(a): #a=[1,34,56,24,99,76,4] #接收一個列表,求該列表的最大值,最小值和平均值 max1=max(a) min1=min(a) avg1=sum(a)/len(a) #在python函式中,只能返回一個值; #如果一定要返回多個值,那麼就回把返回的值封裝為一個元組資料 return max1,min1,avg1 variables=fun([1,34,56,24,99,76,4]) print(variables,type(variables)) #(99, 1, 42.0) <class 'tuple'>,它的型別是一個元組 #形參——必選引數 def add(x,y,z): #在這裡x,y,z是形式引數 return x+y+z print(add(3,4,5)) #而這裡的3,4,5是實際引數,即x=3,y=4,z=5 #形參——預設引數 #如果實參只有一個,x=...,y=2 #如果實參只有 兩個,x=2,y=3 def mypow(x,y=2): return x**y print(mypow(2)) #實參只有一個,x=2,,預設引數y=2,所以求得2**2=4 print(mypow(2,3)) # 實參有兩個,x=2,y=3,此時列印結果為2**3=8 #print內建函式,預設的end='\n',進行換行,當然,我們也可以指定end的值 print('hello') print('world') print('hello',end=',') print('world') #形參--可變引數 #可變引數,*變數名; #*args,args實質上是一個元組: def mysum(*args): print(args,type(args)) #(1, 2, 3, 5, 4) <class 'tuple'> return sum(args) print(mysum(1,2,3,5,4)) #如果已經存在:列表,但是要把列表的每一個元素作為引數,可以直接*li進行解包 li=range(1,11) # li=(1,2,3) # li={1,2,3} print(mysum(*li)) #*li將列表中的每一個元素拿出來,變為元祖型別 #形參--關鍵字引數 #**kwargs關鍵字引數;接受的kwargs是字典型別; def fun(**kwargs): print(kwargs,type(kwargs)) #列印結果為{'a': 1, 'b': 2} <class 'dict'> fun(a=1,b=2) #實際引數應該為字典型別 d={ 'a':1, 'b':2 } fun(**d) #<div id=s_tabwidth=100height=200>網頁</div> def make_html(label,value,**kwargs): #(必選引數,預設引數,關鍵字引數) s='' #定義一個空的字串 for k,v in kwargs.items(): #遍歷關鍵字引數裡的key-value值 s+='%s=%s'%(k,v) #給空的字串裡新增關鍵字引數的key-value 值 html='<%s %s>%s</%s>'%(label,s,value,label) return html print(make_html('div','網頁',id='s_tab',width=100,height=200))