Python函數 - iT 邦幫忙
文章推薦指數: 80 %
定義函式我們需要用到def關鍵字來告知python我們要定義一個函式. 簡單範例: ... 自己呼叫自己、設置終止目標; 範例:階乘、費氏數列、最大公因數、最小公倍數.
第11屆iThome鐵人賽
DAY
13
0
自我挑戰組
從python入門到物聯網系列第
13篇
Day13-Python函數
11th鐵人賽
wsrsw
2019-09-2813:18:223549瀏覽
函數Function
一旦程式功能變多,相同的功能的程式碼會重複出現,導致程式碼太長、太醜、太難修改,所以需要函式來簡化-相同事件只要寫一次就好。
函式(function):可以設置參數,也可以數值傳給其他函式,以及returnvalue。
語法:deffunctionName():用:縮排來表示function區塊。
定義函式
我們需要用到def關鍵字來告知python我們要定義一個函式
簡單範例:
deftry_function():#定義try_function()函式
print("helloworld")#函式的工作是印出helloworld
return(1+1) #函式回傳的值
x=try_function()#呼叫try_function()函式,函式回傳的值放進x變數中
print(x)
結果:
helloworld
2
把參數帶入函式內
在已經定義的函式括號內放入參數。
簡單範例:
deftry_function(name):#定義try_function()函式,接收name這個參數
print("Hello"+name)#函式的工作是印出Hello加上參數name的值
try_function("wsrsw")#呼叫try_function()函式,函式帶入'wsrsw'參數
結果:
Hellowsrsw
2
簡單運算範例:
defname_age(name,year):
age=2019-year
print("Name:",name)
print("Age:",age)
name=input('輸入你的名字:')
year=int(input('輸入你的出生年:'))
name_age(name,year)
結果:
輸入你的名字:qwe
輸入你的出生年:1990
Name:qwe
Age:29
遞迴
在解決問題時有時需要回到上一個計算或者需要應用到上一個解法的答案,此時就是利用遞迴的概念來撰寫一個函式。
特點:
將大問題拆解成重複性的小問題
自己呼叫自己、設置終止目標
範例:階乘、費氏數列、最大公因數、最小公倍數...
階乘Factorial
n!=1x2x...x(n-1)xn=>
n!=nx(n-1)!=>
n!=nx(n-1)x(n-2)x(n-3)...x1
3!=321
Factorial(3)
=3*Factorial(2)
=3*2*Factorial(1)
=3*2*1
範例:
deffactorial(n):
ifn==1:
return1
else:
returnn*factorial(n-1)
num=int(input('請輸數數字:'))
answer=factorial(num)
print(str(num)+'!='+str(answer))
結果:
請輸數數字:4
4!=24
費氏數列Fibonacci
在數學上,費氏數列是以遞迴的方法來定義:
F0=0
F1=1
Fn=F(n-1)+F(n-2),(n>=2)
費氏數列由0和1開始,之後由之前的兩數相加而得出。
用陣列表示:
F0
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
0
1
1
2
3
5
8
13
21
34
55
用樹枝狀表示:
範例:
deffib(n):
ifn==0:
return0
elifn==1:
return1
returnfib(n-1)+fib(n-2)
num=int(input('請輸數數字:'))
answer=fib(num)
print('F'+str(num)+':'+str(answer))
結果:
請輸數數字:10
F10:55
最大公因數GCD、最小公倍數LCM
使用輾轉相除法!
輾轉相除法-維基百科
每次用兩者間較小的數去對另一個數取餘數,用餘數和較小的數進行再次進行一樣的步驟。
GCD、LCM範例:
defgcd(m,n):
ifn==0:
returnm
else:
returngcd(n,m%n)
deflcm(m,n):
returnm*n//gcd(m,n)
m=int(input("輸入m:"))
n=int(input("輸入n:"))
print("Gcd:",gcd(m,n))
print("Lcm:",lcm(m,n))
結果:
輸入m:252
輸入n:105
Gcd:21
Lcm:1260
留言
追蹤
檢舉
上一篇
Day12-檔案I/O
下一篇
Day14-PythonClass
系列文
從python入門到物聯網
共30篇
目錄
RSS系列文
訂閱系列文
38人訂閱
26
Day26-MQTTlens
27
Day27-使用Python進行Publish&Subscribe
28
Day28-使用Python接收後轉發訊息
29
Day29-python連接InfluxDB
30
Day30-python連接InfluxDB應用
完整目錄
尚未有邦友留言
立即登入留言
iT邦幫忙鐵人賽
參賽組數
1087組
團體組數
52組
累計文章數
20477篇
完賽人數
572人
鐵人賽最新文章
.NetCoreWebApi_筆記21_Swagger及OpenAPI介紹與配置使用方式_API管理與測試探討
.NetCoreWebApi_筆記20_api結合ADO.NET資料庫操作part8_新聞文章查詢
.NetCoreWebApi_筆記19_api結合ADO.NET資料庫操作part7_新聞文章的編輯更新與刪除
.NetCoreWebApi_筆記18_api結合ADO.NET資料庫操作part6_新聞文章表格陳列查詢
.NetCoreWebApi_筆記17_api結合ADO.NET資料庫操作part5_新聞文章新增_新聞類別元素透過API綁定方式
[Bonus系列]-使用useCallback&useMemo的正確時機是什麼?
大盤到底能不能攻上一萬八??
gotodie?那個goto到底能不能用啊?
2021/12/12更新
予焦啦!一夢終須醒......
前往鐵人賽
技術推廣專區
[Day2]抓取每日收盤價
[Day1]基本工具安裝
利用python取得永豐銀行API的Nonce
[Day03]tinyML開發板介紹
永豐金融API測試員
[Day01]在享受tinyML這道美食之前
[Day3]使用ta-lib製作指標
[Day4]函數打包與買進持有報酬率試算
計算API所需要的參數:HashID
計算API所需要的參數:IV
前往鐵人賽
熱門問題
列出85年度台北市的銷售員沒賣過的產品名稱(注意:同一個產品名稱只要顯示一次),並依產品名稱排序。
web)前後端分離,前端如何拿到第三方api跳轉傳資料到後端的資料
關於員工資訊權限管理
網站壓力測試
javascript耗時間的計算動作造成畫面阻塞的解決方式?
有推薦的庫存管理系統嗎
防毒代理商
想問一下有什麼網路工具可以丟一串中文字判斷他是UTF8還是BIG5編碼
螢幕開關一關閉重開畫面顯示無訊號
MSSQL查詢條件下數量為0的
IT邦幫忙
站方公告
【2021iThome鐵人賽】登登登!究竟獎落誰家,2021iThome鐵人賽得獎名單正式揭曉
熱門tag
看更多
13th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
2018鐵人賽
javascript
2017鐵人賽
windows
php
python
windowsserver
linux
c#
程式設計
資訊安全
css
vue.js
sql
分享
熱門回答
怎麼樣將系統遷移到SSD
web)前後端分離,前端如何拿到第三方api跳轉傳資料到後端的資料
網站壓力測試
自建網站速度非常慢(XAMMP)
螢幕開關一關閉重開畫面顯示無訊號
無法連上新買的WiFi分享器
網頁表格是否可以儲存由excel複製的部份欄位
想問一下有什麼網路工具可以丟一串中文字判斷他是UTF8還是BIG5編碼
共用印表機無法連線
javascript耗時間的計算動作造成畫面阻塞的解決方式?
熱門文章
日本最大行動支付【PAYPAY】徵後端工程師
軟體人的輸出式學習:從出片到出書—我的第一手經驗分享
[DAY1]SQL的新手懶人筆記
javascript物件教學1
django新手村3-----models一對多
新手要如何開始做B2C電商?如何在開店平台架設品牌官網?
C#小白需要看小抄01-環境設定篇(使用VSCodeonMacOS)
django新手村1
品牌設計案例
STM32開發筆記02---新建庫函數工程
一週點數排行
更多點數排行
海綿寶寶(antijava)
㊣浩瀚星空㊣(yoching)
Felix(redqi)
raytracy(raytracy)
ccenjor(ccenjor)
純真的人(jer5173)
Gary(mosbbs)
Samuel(kuanyu)
mathewkl(mathewkl)
居然解出來了(partyyaya)
×
At
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{result.label}}
{{result.account}}
關閉
延伸文章資訊
- 1最大公因數( 多個數字) - Python 教學
- 2在Python 中實現最大公約數操作 - Delft Stack
最大公約數(GCD),也稱為兩個值的最高公因數(HCF),是將兩個給定數相除的最大數。最大公約數也可以用Python 計算和實現。 本教程演示了在Python 中 ...
- 3GCD 最大公因數 - Python 程式設計技巧(APCS檢測)
GCD 最大公因數. # 算GCD ''' 最大公約數:(Greatest Common Divisor,簡寫為GCD) 最小公倍數:(英語:Lowest Common Multiple,簡寫為...
- 4[Python] 找兩個正整數的最大公因數及最小公倍數 - 樺的筆記
[Python] 找兩個正整數的最大公因數及最小公倍數. 公因數: x = int(input("please input a number:")) y = int(input("please ...
- 5因數分解 - OpenHome.cc
程式實作:最大公因數、最小公倍數