22.函數(1)----初識函數

1.什麼是函數?

函數是具有某一功能的工具。
假如我們是一個修理工,幹活之前要準備好相應的工具,幹活時用到什麼直接拿就可以而不用現場造一個工具。函數就相當於工具,
我們事先定義好,使用時直接調用就好。

抑或將函數當做一個工廠,我們傳給工廠材料,工廠加工完給我們成品。

2.爲什麼要有函數?

  1. 代碼結構不清晰,可讀性查
  2. 代碼冗餘
  3. 可維護性差,擴展性差

3.函數的定義和使用

1.函數的定義

def 函數名(參數1,參數2,......):
	"""
	註釋
	"""
	函數體
	return1.函數名與變量名的命名規則相同(函數名實際上就是一個變量名)
3.參數可有可無
2.註釋可有可無,寫複雜函數時最好加上,提高可讀性
3.函數體必須有,即使沒有代碼也要寫pass
4.返回值可有可無

定義函數的過程:

  1. 申請內存地址並將函數體代碼存到內存中
  2. 將函數名綁定上述內存地址
  3. 定義函數時不會執行函數體代碼,但是會檢查函數體語法

示例1:

def func():
	print("func")

運行完之後什麼都沒有,因爲我們只是定義了函數,不會執行函數體代碼

示例2:

def func():
	print("func")
print(func)

結果如下:
因爲函數名對應函數體的內存地址,
示例3:

def func():
	a
	print("func")

雖然a未定義,但執行完並沒有報錯,因爲沒有語法錯誤,而且定義函數時並不會執行函數體代碼

示例4:

def func():
	print("func"

執行時會報錯,因爲print語法錯誤,函數定義時雖然不會執行函數體代碼,但是會檢查語法

2.函數的調用

函數名(參數1,參數2)

調用函數的過程:

  1. 根據函數名找到函數體代碼的內存地址
  2. ()觸發函數體代碼的執行

示例1:

def func():
	print("this is func")
func()

結果如下:
在這裏插入圖片描述
示例2:

def func1():
	print("func1")
def func2():
	func1()
	print("func2")
func2()

結果如下:
在這裏插入圖片描述雖然只是執行func2但是func2的函數體調用了func1
示例3:

def func1():
	print("func1")
	func2()

def func2():
	print("func2")

func1()

結果如下:
在這裏插入圖片描述
上述代碼執行時並不會報錯,因爲雖然func2後於func1定義,但是func1的執行在func2定義後,定義func1時又不會執行func1函數體,在func1執行時,func2已經存到內存中了,所以不會報錯
但是如果將func1的執行放在func2的定義前則會報錯,如下所示:

def func1():
	print("func1")
	func2()
func1()
def func2():
	print("func2")

結果如下:
在這裏插入圖片描述

3.函數定義的三種形式

1.無參函數

應用場景:函數體的執行不需要參數(工廠加工不需要原材料)

實例代碼:

def func():
	name = input("your name:")
	age = input("your age:")
	print("your name:{},your age:{}".format(name,age)

2.有參函數

應用場景:函數體的執行需要藉助外界參數(工廠加工需要原材料)

實例代碼:

def add(x,y):
	print(x+y)

3.空函數

應用場景:開發時,先將函數框架寫出來,再慢慢填充內容(啥也不幹的工廠)

實例代碼:

def func():
	pass
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章