函數的基本使用
"""
1,什麼是函數?
函數就至關於具有某一功能的工具
函數的使用必須遵循一個原則:先定義、後調用
2,爲何要用函數
組織結構不清晰,可讀性差
代碼冗餘
可維護性、擴展性差
3,如何用函數
先定義:三種定義方式
後調用:三種調用方式
4,函數的返回值
三種返回方式
"""
定義函數
"""
函數的使用必須遵循‘先定義,後調用’的原則。函數的定義就至關於事先將函數體代碼保存起來,而後將內存地址賦值給函數名,函數名就是對這段代碼的引用,這和變量的定義是類似的。沒有事先定義函數而直接調用,就至關於在引用一個不存在的‘變量名’。
定義函數的語法
def 函數名(參數1,參數2,..):
"""文檔描述"""
函數體
return 值
1,def:定義函數的關鍵字;
2,函數名:函數名指向函數內存地址,是對函數體代碼的引用。函數的命名應該反映出函數的功能;
3,括號:括號就是觸發函數體代碼的執行,括號內定義參數,參數是無關緊要的,並且無需指定參數的類型;
4,冒號;括號後要加冒號,而後在下一行開始縮進編寫函數體的代碼;
5,"""文檔描述""":描述函數功能,參數介紹等信息的文檔,非必要,可是建議加上,從而加強函數的可讀性;
6,函數體:由語句和表達式組成;
7,return值:定義函數的返回值,return是無關緊要的。
"""
函數的三種形式
"""
1,無參函數
例如:
def func():
print('hello')
應用:
def func():
name = input("請輸入姓名:").strip()
age = input("請輸入年齡:").strip()
gender = input("請輸入性別:").strip()
msg = '姓名:{} 年齡:{} 性別:{}' .format(name,age,gender)
print(msg) # 至關於存放了一段代碼
func() # 調用函數
2,有參函數
例如:
def func(x,y):
print(x,y)
func(1,2)
3,空函數
函數體爲pass表明什麼都不作,稱爲空函數。定義空函數一般是有用的,由於在程序設計的開始,每每是先想好程序都須要完成什麼功能,而後把全部功能都列舉出來用pass充當函數體‘佔位符’,這將使得程序的體系結構立見,清晰且可讀性強。
例如:
def func(x,y):
pass
ps:空函數,函數體代碼爲pass
應用:
def auth_user():
"""user authentication function"""
pass
def download_file():
"""download file function"""
pass
def upload_file():
"""upload file function"""
pass
ps:在規劃階段使用
"""
函數的調用
"""
函數的使用分爲定義階段與調用階段,定義函數時只檢測語法,不執行函數體代碼,函數名加括號即函數調用,只有調用函數時纔會執行函數體代碼。
定義階段:
def func():
print('in the func')
def foo():
print('in the foo')
func()
foo() # 調用階段
執行結果:
in the fun
in the foo
"""
函數的返回值
"""
return是函數結束的標誌,即函數體代碼一旦運行到return會當即終止函數的運行,並會將return的值看成本次運行的結果返回給調用者,return後無值或直接省略return,則默認返回None,return的返回值無類型限制,且能夠將多個返回值放到一個元組內。
1.返回None
函數體內沒有return
return
return None
2,返回一個值:
def func():
return 10
3,返回多個值
def func():
return 10,'aa',[1,2]
"""