函式:完成 特定 功能的**塊,作為乙個整體,對其進行特定的命名,該名字就代表函式
-- 現實中:很多問題要通過一些工具進行處理 => 可以將工具提前生產出來並命名
=> 通過名字就可以找到工具 => 使用工具來解決問題
函式的優點:
1. 避免**的冗餘
2. 讓程式**結構更加清晰
3. 讓**具有復用性,便於維護
函式的四部分:
1. 函式名:使用該函式的依據
2. 函式體:完成功能的**塊
3. 返回值:功能完成的反饋結果
4. 引數:完成功能需要的條件資訊
定義函式的語法:通過def關鍵字來定義
列子:def get_water(water, money):
print('收入你的%d元錢')
print('給你%s水種')
return '礦泉水'
使用函式:
1.根據需求定義函式
2.通過函式名找到函式所在的位置(記憶體位址)
3.函式名() 執行函式位址中存放的所有**塊
函式在定義時需要外界的引數,就要在呼叫時傳入對應的引數
4.函式執行完一定有返回結果,通過return關鍵字將結果返回給外界
外界需要知道執行結果,用變數接收,反之只執行函式(不需要接收)即可
注:函式必須先定義,後使用
函式的四部分都可以根據需求的變化而變化
def get_water(water, money):
print('收入你的%d元錢' % money)
print('給你%s水種' % water)
return water
需要使用函式,就呼叫一次
res = get_water('礦泉水', 10)
print(res)
print('玩耍...')
print('又口渴了...')
又來需求,在呼叫一次,**可以復用,函式只有乙個,**結構清晰且不冗餘
res = get_water('王老吉', 20)
print(res)
1.根據函式體分類
空函式: pass來填充函式體的函式
-- 優先明確函式名,暫不明確函式體(程式設計中就存在一些沒有函式體的函式)
def login(): pass # 在開發初期,可以講所有功能提前列出來,用pass佔位著,後期再去填充功能體
非空函式:有函式體的函式
def fn2():
print('函式體')
2.根據函式引數分類
def add():
print('功能體不需要外界的引數')
n1 = input('n1: ')
n2 = input('n2: ')
print(n1 + n2)
有參函式
def add_two(n1, n2):
print('功能體需要外界的引數')
print(n1 + n2)
3.根據函式返回值分類:所有的函式都有返回值
不明確返回值
def low_two(n1, n2):
外部不需要知道內部的執行結果
print(n1 - n2)
明確返回值
def jump_two(n1, n2):
外部需要知道內部的執行結果
return n1 * n2
res = jump_two(10, 20)
print(res)
重點: 返回值的功能
1.結束函式;2.將函式的內部資料返回給外部
res = fn1() # 一般不需要對這樣的函式進行接收執行結果
print(res)
多個值def get_two_num():
n1 = input('n1: ')
n2 = input('n2: ')
return n1, n2
return (n1, n2)
print(get_two_num())
num1, num2 = get_two_num() # python的return支援多值返回的語法原因是python中有解壓賦值
print(num1, num2)
函式的使用
函式的定義 我們有乙個很簡單的函式echoname function echoname 他的結構如下 array type function name echoname property array child array array type echo value array type strin...
函式的使用
1.函式在呼叫時,只看函式名稱,不看引數名稱,至於調完後能不能正常執行,就看你怎麼寫了 function fun1 a,b fun1 1,2 返回值是3 fun1 1,2,3,4 返回值是3 fun1 相當於你定義了乙個變數,沒有給它初始化值,他的預設值是undefined。然後兩個undefine...
使用函式 日期函式的組合使用
1 date 函式 該函式有三個引數 year month day,借助date函式可以將文字儲存的日期變成日期格式,便於統計時間間隔 同時也可自主賦值給date函式,如表示2019年3月25日,可寫成date 2019,3,25 下面就是date函式和left mid right and函式的搭配...