返回值就是函式執⾏以後返回的結果 通過return來指定函式的返回值 return後⾯可以跟任意物件,返回值甚⾄可以是⼀個函式
help()是python中內建函式,通過help()函式可以查詢python中函式的⽤法 在定義函式時,可以在函式內部編寫⽂檔字串,⽂檔字串就是對函式的 說明
作⽤域(scope)
作⽤域指的是變數⽣效的區域
在python中⼀共有兩種作⽤域
全域性作⽤域
全域性作⽤域在程式執⾏時建立,在程式執⾏結束時銷毀
所有函式以外的區域都是全域性作⽤域
在全域性作⽤域中定義的變數,都是全域性變數,全域性變數可以在程式的任意 位置進⾏訪問
函式作⽤域
函式作⽤域在函式調⽤時建立,在調⽤結束時銷毀
函式每調⽤⼀次就會產⽣⼀個新的函式作⽤域
在函式作⽤域中定義的變數,都是區域性變數,它只能在函式內部被訪問
命名空間實際上就是⼀個字典,是⼀個專⻔⽤來儲存變數的字典
locals()⽤來獲取當前作⽤域的命名空間
如果在全域性作⽤域中調⽤locals()則獲取全域性命名空間,如果在函式作⽤域中 調⽤locals()則獲取函式命名空間
返回值是⼀個字典
遞迴是解決問題的⼀種⽅式,它的整體思想,是將⼀個⼤問題分解為⼀個個 的⼩問題,直到問題⽆法分解時,在去解決問題
遞迴式函式有2個條件
基線條件 問題可以被分解為最⼩問題,當滿⾜基線條件時,遞迴就不 執⾏了
遞迴條件 可以將問題繼續分解的條件
把函式作為引數傳入新的函式(接受乙個或多個函式作為引數)
def fn():
return 100
# return 'python'
# return [1,2,3]
# return
# def fn2():
# print('hello')
## return fn2
r = fn()
print(r)
# 求任意數的和
def fn(*nums):
result = 0
for n in nums:
result += n
# print(result)
return result
r = fn(1,2)
# print(r+3)
# 返回值 就是函式執行以後返回的結果
# 可以通過return來指定函式的返回值
# 我們可以通過乙個變數來接收函式的返回值
# return後面可以跟任意物件,甚至可以是乙個函式
# def fn():
## # return 100
# # return 'python'
# # return [1,2,3]
# # return
# def fn2():
# print('hello')
## return fn2
# r = fn()
# # print(r)
# # print(fn())
# r()
# 如果僅僅寫乙個return,或者不寫return,則相當於return none
# def fn2():
## return
## r = fn2()
# print(r)
# def fn3():
## print('hello')
# return
# print('123')
## r = fn3()
# print(r)
# 在函式中 return後面的**都不會執行,return一旦執行函式自動結束
# def fn4():
## for b in range(5):
# if b == 3:
# # break
# return # 用來結束函式
# print(b)
# print('迴圈執行完畢')
## fn4()
def fn5():
return 100
# fn5和fn5()的區別
# fn5是函式物件
# fn5()是在呼叫函式
print(fn5)
print(fn5())
# 嘗試求10的階乘(10!)
# 1! = 1
# 2! = 1*2 = 2
# 3! = 1*2*3 = 6
# .....8*9*10 = 3628800
# print(1*2*3*4*5*6*7*8*9*10)
# 建立乙個變數
# n = 10
# for i in range(1,10):
# n *= i
## print(n)
# 求任意數的階乘
# def fn1(n):
## # 引數n 要求階乘的數字
# # n = 10
# # 定義乙個變數 儲存結果
# result = n
# for i in range(1,n):
# result *= i
## return result
## print(fn1(300))
# 遞迴式的函式
# 從前有座山,山里有座廟,廟裡有個老和尚在給乙個小和尚講故事,講什麼故事呢?
# 從前有座山,山里有座廟,廟裡有個老和尚在給乙個小和尚講故事,講什麼故事呢?...
# 遞迴簡單理解就是自己去引用自己
# 遞迴式函式,在函式中自己呼叫自己
# 無窮遞迴 類似於死迴圈
# def fn():
# fn()
# fn()
# 遞迴是乙個解決問題的方式
# 它的整體思想,是將乙個大的問題分解為乙個乙個的小問題,直到問題無法分解時,再去解決問題
# 遞迴式的函式有2個條件
# 1.基線條件
# 問題可以被分解為最小的問題,當滿足基線條件時,遞迴就不在執行了
# 2.遞迴條件
# 將問題可以繼續分解的條件
# 用遞迴的方式求任意數的階乘
# 10!= 10 * 9!
# 9! = 9 * 8!
# 8! = 8 * 7!
# ....
# 1! = 1
def fn2(n):
# 引數 n要求階乘的數字
# 1.基線條件
if n == 1:
# 1的階乘就是1 直接返回結果
return 1
# 2.遞迴條件
return n * fn2(n-1)
print(fn2(10))
# 命名空間實際上就是乙個字典 是乙個專門用來儲存變數的字典
# locals() 用來獲取當前作用域的命名空間 返回值是乙個字典
a = 20
def fn3():
global a
a = 50
print('函式內部:','a =',a)
s = locals()
## # print(s)
# print(a)
# print(s['a'])
# # c = 100
## s['c'] = 100
# print(c) # nameerror: name 'c' is not defined
## print(s)
# def fn4():
## # a = 10
# # s = locals() # 獲取函式內部的命名空間
# # s['b'] = 20
# # print(s)
## global_s = globals()
# global_s['a'] = 30
# print(global_s)
# fn4()
## print(a)
課堂筆記2
一 makefile make命令執行時,需要乙個makefile檔案,以告訴make命令需要怎樣去編譯和鏈結程式。格式 target 目標 dependency 依賴 tab字元 command 命令 例 hello hello.c gcc hello.c o hello 通過hello.o和pr...
課堂筆記2(亂)
select it.iname 商品名稱,itc.cname 商品類別名稱 from item it join itemcategory itc on it.cid itc.id it 為item的別名 提高執行速度,itc為itcategory的別名。商品名稱為iname的別名,列的別名,影響執行...
c 課堂筆記(2)
include include includeusing namespace std int main 1計數控制的迴圈 2條件控制的迴圈 1當型迴圈結構,表示當條件p成立 為真 時反覆執行a操作,直到條件p不成立 為假 時迴圈結束 2直到型迴圈結構,表示先執行a操作,再判斷條件p是否成立 為真 若...