Python函數 - iT 邦幫忙

文章推薦指數: 80 %
投票人數:10人

定義函式我們需要用到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}} 關閉



請為這篇文章評分?