一、認識函式
1.1作用:減少重複**,便於修改維護
認識簡單寫法:實參,形參
#def shiya(name):
#print('hello',name)
#print('my name is',name)
##name = zhang peng 錯誤傳引數的方法
## shiya('zhangpeng')錯誤傳引數的縮排##
shiya('zhangpeng')
傳參def sac(x,y):#
形參 rel = x**y
(rel)
sac(2,8)
1.2 預設引數(寫在形參裡)
def info(name,age,add,country='cn'): #預設引數,必須寫在位置引數(形式引數)的後面
print(name,age,add,country)
info(
'zhang
','22
','pan')
info(
'song
','22
','zhan')
info(
'yang
','22
','li
','koern')
info(
'peng
','22
','er
','jp
')
1.3關鍵引數(寫在實參裡面)
def info(name,age,add,country):print(name,age,add,country)
info(
'zhang
',age='
22',country='
jp',add='
pan'
)#關鍵引數,必須寫在位置引數(形式引數)的後面
# info('cn
',add='
zhan
',name='
song
',age='22'
,)#錯誤為引數name獲取了多個值
info(
'zhang
',22,country='
cn',add='
sichuang
')
1.4非固定引數(可以傳多個值)用來判斷使用者的輸入
# def info(age,*name):#
for i in
name:
# print("傳送
",i)
#元祖型別
#方式一:----> info(23,24,25,'
zhang
','peng
','da
','u
','f
')#若形參出現*可傳遞多個值可以不固定
#方式二:-----> info(23,*[1,2,3,4,5,6,7,8])#若需要傳乙個列表裡的多個元素給形參需要加*號
#字典型別
def info(age,*name,**add):
print(age,name,add)
#方式一:----> info(2,3,4,5,6,7,8,9,jia = '
sshan
',lo ='
jcabh
') # **指的是乙個字典型別的引數需要給裡面的值是乙個未定義的關鍵字的引數
d =
#方式二:----> info(22,**d) #字典也可以直接傳入,前提是要遵循在位置引數之後傳入輸出:22 ()
info(
22,*d) #輸出:22 ('
a',) {}
1.5函式的返回值(用來做判斷)return作為函式的返回值永遠只會返回乙個元素,他是作為乙個函式結束的標誌,預設的返回值為none
def info(name,age,add):print(name,age,add)
if age > 22
:
return
add #預設返回值是 none
else
:
return
false
person = info('
zhang
',25,'
huaxue')
print(person) #--->return用於返回乙個元素來判斷下面程式的操作
# if person ==true:
# print(
'good')
# else
:# print(
'haha
')
1.6區域性變數 定義在函式最外層的變數叫做全域性變數,全部都可使用,定義在函式內部的變數區域性變數,函式內部使用。若既有全域性又有區域性函式由內往外找變數。同級別的區域性變數不能呼叫。
#區域性變數
name = '
shuxue'#
作用全部
definfo():
#name = "數學"
print("
選擇的是
",name,id(name))#
作用於區域性,區域性變數沒有往外找
info()
definfo2():
name = "語文"
print("
你的選擇是
",name)#
同等級的區域性變數不能共用
info2()
print(name,id(name))
若要在區域性變數裡面修改全部變數,可使用global來定義,一般不建議使用。
1.7巢狀函式 函式內部可以再次定義乙個函式,要想執行需要呼叫#
巢狀函式
#def fun1():
#print('zhang')
#def fun2():
#print('lou')
#fun2() #------>執行第二層函式,顯示『lou』
#fun1() #------>執行最外層函式,顯示'zhang'
#age = 33
#def fun1():
## age = 74
#print(age)
## age = 88
#def fun2():
#print(age)
#fun2()
#age = 88 #------>age成為父級
#fun1()
age = 33
deffun1():
#age = 74
(age)
#age = 88
global
age
deffun2():
(age)
age = 88 #
----->報錯age此時有兩個變數
fun2()
fun1()
1.8函式的作用域
python中乙個函式就是乙個作用域,當函式寫完作用域就已經生成,當返回函式的值時函式只會到作用域裡面的上級去查詢。return返回後變數依然在作用域鏈上查詢。
d = [1,2,3]defrun():
#print(d)
d = [2, 3, 4]
defrun1():
(d)
return run1#
------>返回乙個函式run1
val =run()
val() #輸出結果為:[2,3,4]
1.9匿名函式 主要作用減少**量
#def f(x,y):##
if x>y:
#return x*y
#else:
#return x+y
#val = f(3,4)
#print(val)
#-----------------^原版^
#匿名函式
func =lambda x,y:x*y if x>y else x+y
print(func(3,4))
函式基礎 函式引數及函式簡單應用
1 為什麼要有函式?沒有函式帶來的困擾?組織結構不清晰,可讀性差 冗餘 可擴充套件性差 2 什麼是函式 具備某乙個功能的工具 函式 事先準備工具 函式的定義 拿來就用 重複使用 函式的呼叫 ps 先定義後呼叫 3 函式的分類 內建函式 len,max 10,11 help 函式名 自定義函式 def...
Scala 簡單的函式基礎定義
def main args array string unit 2 函式呼叫 函式名 引數 f hello world 定義位置不一樣 函式,定義在方法或者函式內部 方法,定義在類的下面方法支援過載或者重寫,但是函式不支援 object testfunction def main args arra...
函式的基礎和簡單使用
使用函式的目的個人認為主要是為了減少重複性操作 當大量的 重複使用的時候,可以使用函式 函式的作用 提公升了 的簡潔性 對功能 進行封裝,提公升了 的重用性以及可可讀性 1 定義函式使用def 函式體寫在縮排塊中,函式的返回值用return語句返回,函式執行完畢也沒有return語句時,自動retu...