Python7--局部變量、全局變量、缺省參數、不定長參數、遞歸

局部變量:
函數內部定義的變量,只能在函數內部使用
全局變量:
函數外部定義的變量,在哪都可以調用

  1 '''
  2 def get_wendu():
  3     wendu = 33
  4     return wendu
  5
  6 def print_wendu(wendu):
  7     print('溫度:%d'%wendu)
  8
  9 result =  get_wendu()#函數返回值,在沒有調用函數之前,用變量保存的話,沒有意義
 10 print_wendu(result)
 11 '''
 12
 13 #定義一個全局變量:wendu
 14 wendu  = 0
 15 def get_wendu():
 16 #這個wendu只是與全局變量wendu同名,不可對全局變量進行修改
 17     #wendu = 30
 18 #使用global用來對全局變量的聲明
 19     global wendu
 20     wendu = 20
 21
 22 def print_wendu():
 23     print('溫度:%d'%wendu)
 24
 25 get_wendu()
 26 print_wendu()

全局變量在函數內修改時應該先進行聲明(golbal),否則默認爲定義一個局部變量

缺省參數
#定義形參時,b給了默認的值,當不傳值時,使用默認值,這就是缺省參數,缺省參數,要放在最後
def test(a,d,b = 1,c = 2): 
    result = a+b
test(10,1,2,3)
test(20,12)
test(2,4,c=5)
 
不定長參數
  1 def sum_nums(a,b,*args): #形參前加* ,不定長參數必須放在最後(以元組的方式保存)
  2     print(a)
  3     print(b)
  4     print(args)
  5     result = a+b
  6     for num in args:
  7         result += num
  8     print('和:%d'%result)
  9     print('='*40)
 10
 11 sum_nums(12,13,14,15,16)
 12
 13 sum_nums(12,13,14)
 14
 15 sum_nums(12,13)
 16
 17 #sum_nums(12) #錯誤,形參中至少要有2個實參
 18
 19 def test(a,b,c = 12,*args,**kwargs): #形參前加** ,以字典方式保存
 20     print(a)
 21     print(b)
 22     print(c)
 23     print(args)
 24     print(kwargs)
 25     print('-'*50)
 26
 27 test(12,13,14,15,16,weight = 17,age = 18,high = 19)
 28
 29 A = (1,2,3)
 30 B = {'name':'jack','age':18}
 31 test(12,13,14,A,B)
 32 test(12,13,14,*A,**B) #拆包

引用
查詢內存地址
In [1]: a = 11

In [2]: b = a

In [3]: id(a)
Out[3]: 4297641408

In [4]: id(b)
Out[4]: 4297641408

階乘
  1 #階乘
  2 i = 1
  3 result = 1
  4
  5 while i<=5:
  6     result *= i
  7     i +=1
  8 print(result)
  9
 10 def jc(num):
 11     # 加判斷限制函數,return返回值纔可以繼續乘下去
 12     if num >1:
 13         return num *jc(num-1)
 14     else:
 15         return num
 16 result = jc(6)
 17 print(result)






發佈了46 篇原創文章 · 獲贊 1 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章