1、函式
函式定義/引數:def 函式名(引數): 函式體
函式的返回值:return 返回值。
def add(num1, num2):
result = num1 + num2
#print(restult)
return result
result = add(1, 2)
print(restult)
2、函式的引數
以上述函式為例,def add(num1.num2):函式定義過程中的name是形參,因為它只是乙個形式,表示佔據乙個引數位置。
print('傳遞進來的'+ name + '叫做實參,因為是具體的引數值!')。add(1,2):傳遞進來的引數時實參,因為是具體的引數值。
關鍵字引數:傳入引數的順序如果發生改變,會影響函式的結果,所以可以加關鍵字消除順序的影響:add(num2=2,num1=1),也可以在定義函式的時候設定預設引數:def add(num1=1,num2=2)
收集引數(可變引數):不確定會傳進多少個引數,定義的時候加* def test(*params)
3、函式與過程
python所有的函式都有返回值,有值的時候返回值,沒值的時候返回none
4、全域性變數與函式中的區域性變數
想要在函式中實現對全域性變數的修改,可以在函式中將變數宣告為global型別
count = 10
print('the old count = ',count)
def myfun():
global count
count = 5
print('the new count = ', count)
myfun()
5、內嵌函式:在函式內部建立函式,也只能在函式內呼叫,不能在外部呼叫
def fun1():
print('fun1正在被呼叫。。。。')
def fun2():
print('fun2正在被呼叫。。。。')
fun2()
6、閉包:
python中任何變數或函式都是物件,可以直接返回。nonlocal使子函式可以使用母函式中的變數
def funx(x):
def funy(y):
return x*y
return funy
funx(3)(5)
def fun1():
x = 5
def fun2():
x *= x
return x
return fun2 #return fun2()會報錯
def fun1():
x = 5
def fun2():
nonlocal x #使x不是區域性變數,即fun2()可以使用x的值
x *= x
return x
return fun2()
7、lambda公式: x : 2 * x + 1
g = lambda x : 2 * x + 1
print(g(5))
numsum = lambda x,y:x+y
print(numsum(3,5))
python寫一些執行指令碼時,使用lambda就可以省下定義函式的過程,如果只是需要寫個簡單的指令碼來管理伺服器的時間,就不需要專門定義乙個函式然後寫呼叫,使用lambda就可以使**更精簡。
對一些比較抽象且整個程式執行下來只需要呼叫一兩次的函式,使用lambda就不需要考慮命名的問題了。
簡化**的可讀性
8、兩個bif
filter(function or none, iterable)過濾器:把任何非true的內容過濾掉
def odd(x):
return x%2
numbers = range(10)
show = filter(odd, numbers)
print(list(show))
map()對映:將序列的每乙個元素作為函式的引數進行運算加工,直到可迭代序列所有的元素加工完畢,返回加工後的序列
mapshow = list(map(lambda x : x * 2, range(10)))
print(mapshow)
9、遞迴:函式呼叫自身行為+正確的返回條件 遞迴具有危險性
def factorial(n):
if n == 1:
return 1
else:
return n*factorial(n-1)
print(factorial(5))
遞迴和迭代的區別:迭代:利用變數的原值推算出變數的乙個新值.如果遞迴是自己呼叫自己的話,迭代就是a不停的呼叫b。遞迴中一定有迭代,但是迭代中不一定有遞迴,大部分可以相互轉換.能用迭代的不用遞迴,遞迴呼叫函式,浪費空間,並且遞迴太深容易造成堆疊的溢位. 一些入門的Python練習小程式
程式1 輸出某個範圍內的阿姆斯特朗數 阿姆斯特朗數,乙個n位數的每位數字的n次方相加等於此數,例如153是個3位數,1的3次方加5的3次方加3的3次方等於153 while true num low int input 請輸入範圍下限 範圍下限 num hig int input 請輸入範圍上限 範...
c 小甲魚C 快速入門 一
輸入一串整數和任意數目的空格,計算整數的和 includeint main printf 結果是 d sum return 0 cin.peek cin.get includeusing namespace std int main if cin.peek n break cout 用法一 cin....
一些零散的筆記
只是利用這裡記錄一下,以前沒有聽說過的 聽說過沒有用過的 有意義的東西,更類似於索引或者目錄。名稱 varnish cache server 特性 正規表示式,從知乎上看到的 應該也是引用了某個 的圖 批處理中 0的用法 set selfpath dp0 之後可以使用 selfpath 作為bat檔...