Python数学建模入门【3】
1.4 函數
1.Python中定義函數的語法
#自定義函數的語法形式 def factorial(n):r = 1while n > 1:r *= nn -= 1return r print(factorial(5))運行結果:
120這里使用了python中有關函數的定義,形式如上,python中的:是格式要求,如果缺少的話會報錯,除此之外,python用四個空格的縮進來表示代碼塊之間的縮進,例如define和while之間間隔四個空格,while和循環中的語句間隔同樣為四個空格,python對于格式的要求很嚴格,在編碼過程中要養成良好的習慣。
#求數字的p次方的和 def square_sum(n,p = 2):result = sum([i**p for i in range(1,n+1)])return (n,p,result) print("1到%d的%d次方和為%d" %square_sum(10))運行結果:
1到10的2次方和為3852.可變參數的python函數
#可變參數的python函數 def add(*args):print (args ,end=' ')s = sum(args)return s print("的和為%d"%add(10,12,6,8))運行結果:
(10, 12, 6, 8) 的和為36python中設置了可變參數的函數,例如我們想計算多個數的和的時候,想要輸入多個數據,我們就可以采用上面的形式,用*名稱來錄入多個數據,可變參數函數會把輸入的數據封裝成一個元組,進行函數的運算。
3.關鍵字參數
#關鍵字參數 def person(name,age,**kw):print('name:',name,'age:',age,'others:',kw) person('Michael',30) person('Bob',35,city = 'Beijing')運行結果:
name: Michael age: 30 others: {} name: Bob age: 35 others: {'city': 'Beijing'}這種方式避免了可變參數接受多個實參后捆綁成一個元組,通過關鍵字參數可以構造字典來實現對行參的單獨訪問,如圖在所示的程序中,name 和 age是位置參數,兩個必須要傳入到對應的值,其他關鍵字參數則是會不斷出現 。
4.參數傳遞
(1)
#參數傳遞def fun(a,b):a,b = b,a print('函數內交換后的值是:%d %d\n'%(a,b))return a = 10;b = 5 print('調用函數前變量的值:%d %d\n' % (a,b)) fun(a,b) print('調用函數后變量的值:%d %d\n' % (a,b)) #我們可以看到兩個數值確實進行了交換,但是外部實參的值并沒有改變運行結果:
調用函數前變量的值:10 5函數內交換后的值是:5 10調用函數后變量的值:10 5參數的傳遞方式有傳值和傳址兩種。
傳值的意思是說在函數中對變量進行的任何改變不會影響實際變量的值,類似于C語言中的形參和實參。
傳址的意思則是說,會對地址中的內容直接改變使用同一個地址。
(2)
#參數傳遞的復合數據包 def fun(a,b,c):print("三個數的和為:",a+b+c) seq = [1,2,3]; fun(*seq) tup = (1,2,3); fun(*tup) dic = {1:'a',2:'b',3:'c'};fun(*dic) seta = {1,2,3}; fun(*seta)運行結果:
三個數的和為: 6 三個數的和為: 6 三個數的和為: 6 三個數的和為: 6運用*可以對不同數據類型中的每個元素進行相應的訪問。
5.lambda函數使用
#lambda函數的使用示例 f = lambda n,m:sum([k**m for k in range (1,n+1)]) s = f(100,1)+f(50,2)+f(10,-1) print("s=%10.4f"%(s))運行結果:
s=47977.92906.遞歸python函數
#在python中編寫遞歸函數 x,n = eval(input("請輸入x和n的值:")) def p(x,n):if n == 1: return xelse: return x*(1-p(x,n-1)) v = p(x,n) print("p(%d,%d)=%d"%(x,n,v))
運行結果:
請輸入x和n的值:2,4 p(2,4)=-107.python中查看文檔的方式
#python中導入模塊的方式 import numpy help(numpy.random)補充習題:
x = [1,2,3] y = [-1,-2,-3] list(zip(*zip(x,y)))運行結果:
[(1, 2, 3), (-1, -2, -3)]可以先自行推斷結果,忘了的小伙伴可以去看看Python數學建模入門【2】中的解析。
Python數學建模入門【2】
總結
以上是生活随笔為你收集整理的Python数学建模入门【3】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用bat修复office文件图标
- 下一篇: java jsonproperty_将多