(1)就是函式呼叫表示式的值;
(2).就是return關鍵字後的表示式的值;
(3)就是函式執行完成後返回給呼叫者的值
函式的呼叫過程:
第一步:將實參傳遞給形參(傳參:用實參給形參賦值)
第二步:執行函式體
第三步:獲取返回值(這個時候回到函式呼叫的位置)
注意:
函式在宣告的時候不會呼叫
如何看乙個函式的返回值是多少:就看retrun後面的結果!!,如果沒有return就是none
(1).函式呼叫表示式:就是呼叫函式的那個表示式(這個表示式是有值的,預設是none)
【例】
def func1():
print('hello world')
# func1()就是函式呼叫表示式,它是乙個值;
# 普通的值能做的事情,函式呼叫表示式都能做;例如:給變數賦值,列印(可以作為實參傳給函式),運算等
result = func1()
print(result, func1())
這裡 func1就是乙個函式,
普通的值能做的事情,函式呼叫表示式都能做;例如:給變數賦值,列印(可以作為實參傳給函式),運算等
(2)return :
作用:1.將值傳給函式呼叫者(函式呼叫表示式) 2.結束函式
如果函式中沒有return, 就相當於在函式結束的時候後面加了乙個return none
【例】寫乙個函式,獲取兩個數 的乘積(注意是獲取,不是但列印)
def qf_multiply(num1, num2):
return num1 * num2
result = qf_multiply(10, 3)
print(result)
所以我們這裡用的retutrn來返回
(3)函式的結束
a.沒有return,函式體執行完畢,函式結束
b.如果函式中有return,遇到return函式就結束。程式直接回到函式呼叫位置,接著往下執行
def func3():
print('hello')
return 10
print('world') #列印不出來
print(func3())
很明顯上面的第二個print函式不會列印出來,因為函式遇到return就結束了
【例】編寫乙個函式,找出100-200之間第乙個能被13整除的數
def qf_find_num():
for x in range(100, 201):
if x % 13 == 0:
return x
print(qf_find_num())
【變式提公升】編寫乙個函式,找出100-200之間第乙個能被13整除的數
ef func3():
count = 0
for x in range(100,201):
if x % 13 == 0:
count += 1
if count == 3:
return x
注意,將列表變數作為實參傳遞給函式,如果在函式中改變了列表的元素,那麼原來列表元素也會改變
【例】寫乙個函式,刪除指定列表中的偶數
def del_list(list):
index = 0
while index < len(list):
if list[index] % 2 == 0:
del list[index]
index -= 1
index += 1
print(list)
list2 = [1, 2, 3, 4]
del_list(list2)
print(list2)
# 注意,將列表變數作為實參傳遞給函式,如果在函式中改變了列表的元素,那麼原來列表元素也會改變
list3 = [1, 2, 3, 4]
del_list(list3[:])
print(list3)
#list[ : ]代表複製了元列表,而原來列表的內容不改變,列印還是顯示list3的內容。
控制台輸出結果
[1, 3]
[1,3]
[1, 3]
[1, 2, 3, 4]
這裡說明兩點:
將列表變數作為實參傳遞給函式,如果在函式中改變了列表的元素,那麼原來列表元素也會改變所以index -=1那一步生成新的下標(索引)
list[ : ]代表複製了元列表,而原來列表的內容不改變,所以在最後print(list3)的時候依然還是顯示list3的內容。
回顧一下函式的格式
def 函式名(引數列表):
函式體我們在宣告函式的時候,其實就是在宣告乙個型別是函式型別(function)的變數。普通變數能做的事情,函式變數都能做
def func1():
print('aaa')
print(type(func1)) # num = 10
print(type(num)) #
type()用來輸出函式型別的函式
a = func1() 這樣賦值,是將函式func1的返回值賦給a,將函式變數func1賦給a, a就會變成乙個函式
a( ) 現在就可以用函式變數a,去呼叫函式func1
def func2(num):
return num*2
b = func2
print(func2(10))
print(b(20))
sinstance() 與 type() 區別:
如果要判斷兩個型別是否相同推薦使用 isinstance()。
格式====isinstance(object, classinfo)
# num1 = 10 num2 = 20 fn = func_add
# 如果num1不是int或者float資料
if not (isinstance(num1, int) or isinstance(num1, float)):
print('num1不是數字')
return none # 在這兒讓函式直接結束
if not (isinstance(num2, int) or isinstance(num2, float)):
print('num2不是數字')
return none # 在這兒讓函式直接結束
return fn(num1, num2) # return func_add(10, 20) return 30
def func_add(m, n):
# m = 10 n = 20
return m + n # return 30
def func_sub(m, n):
return m - n
result = calculate(10, 20, func_add)
print(result)
在python中可以將函式作為函式的返回值,也可以在函式中宣告 函式
【例】 寫乙個函式,func3('+') -> 返回求和的功能;func3('*')-> 返回求乘積的功能
def func3(char):
if char == '+':
# python中,是可以在函式中宣告函式
def fn(*nums):
sum1 = 0
for x in nums:
sum1 += x
return sum1
return fn
if char == '*':
def fn(*nums):
sum1 = 1
for x in nums:
sum1 *= x
return sum1
return fn
result = func3('+') # reslut是乙個求和功能的函式的函式變數
print('aaa', result(1, 2, 3, 4))
result2 = func3('*')(10, 20)
print(result2)
# 列表作為返回(物件變數作為返回值)
def func4():
list1 = [1, 2, 3]
return list1
result = func4()
print(result)
print(func4()[0])
零基礎學python 初步認識永遠強大的函式
函式,對於人類來講,能夠發展到這個數學思維層次,是乙個飛躍。可以說,它的提出,直接加快了現代科技和社會的發展,不論是現代的任何科技門類,乃至於經濟學 政治學 社會學等,都已經普遍使用函式。下面一段來自維基百科 在本教程中,大量的定義來自維基百科,因為它真的很百科 函式詞條 函式這個數學名詞是萊布尼茲...
Python基礎 09 物件導向
1.基本格式和使用 類 class 類名 塊物件 物件名 類名 2.組成 2.屬性 特徵 例項屬性 修改 類外面 例項物件.屬性名 值 類裡面 self.屬性名 值 獲取 類外面 物件名.屬性名 類裡面 self.屬性名 類屬性 歸屬於類物件的屬性,所有物件共有的屬性 類屬性只能通過類物件修改,不能...
python爬蟲入門初步認識
python簡單的爬蟲技術,這裡我用的是python3.x版面進行研究,主要對兩個python庫進行操作。在此之前你需要安裝python3.x環境 1 urllib python3.x官方基礎模組 2 beautifulsoup4 python3.x第三方模組 使用前需要安裝beautifulsou...