1. 程式人生 > >函數復習

函數復習

便是 強調 有意 問題 可變 分類 使用 自己的 int

一、函數
1.為什麽要使用函數?
減少代碼的冗余
2.函數先定義後使用(相當於變量一樣先定義後使用)
3.函數的分類:
內置函數:python解釋器自帶的,直接拿來用就行了
自定義函數:根據自己的需求自己定義的函數
def func(): #函數名打印出來的是內存地址
‘‘‘註釋‘‘‘
函數體
4.函數定義都幹了些什麽事?
只檢測語法,不執行代碼
5.函數就是一段功能,盡量把函數名定義的有意義
6.定義函數的三種方式:
  有參數的函數:就是接受外部傳進來的值,進行一系列的運算,最後吧結果返回出來
  無參數的函數:通常只是做一下操作而已
  空函數:什麽事情都不做就是一個空函數(即便是一個空函數,他也會有如下屬性)
7.函數的返回值:可返回任意類型的值
  什麽時候需要有返回值:具體情況具體分析
  什麽時候沒有返回值:具體情況具體分析
8.yield和return的區別
  yield 停在那呢,掛起了
  yield 能返回多次值;return 返回一次值
  yield 保存函數狀態
9.函數的調用:函數名加()

10函數的參數

形參:
1 位置形參:必須被傳值
2 默認參數:調用時可不傳值
需要註意的問題:
只能在位置形參的後面定義
只在定義階段被賦值一次
通常默認參數的值應該是不可變類型
實參:
1:位置實參:與形參一一對應
2:關鍵字實參:指名道姓地傳值,即便是不按照位置定義也能準確的為指定的形參傳值
可以混用1和2兩種形式,但需要註意的問題:
1必須在2之前
不能為同一個形參重復傳值

可變長度的參數:從實參的角度推算出形參對應的形式*和**
針對按照位置定義的實參冗余的部分,會被形參中的*保存成元組的形式賦值給args
針對按照關鍵定義的實參冗余的部分,會被形參中的**保存成字典的形式賦值給kwargs
強調:
如果實參中出現了*和**,第一時間打散了去看。
11
命名關鍵字參數(了解)
定義:在定義階段,*之後定義的形參稱之為命名關鍵字參數
特點:在調用階段,該類參數必須以關鍵字的形式被傳值
def foo(x,y,*args,a=11111111111111111,b):
print(x)
print(y)
print(args)
print(a)
print(b)
#
foo(1,2,1,2,3,4,5,b=20)

函數復習