0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用Python實現(xiàn)所有算法

云深之無跡 ? 來源:云深之無跡 ? 作者:云深之無跡 ? 2022-07-06 16:39 ? 次閱讀

第一章的內(nèi)容其實是求解線性的方程組.

因為微信對公式不太友好(可能是我不會),所以理論的東西我會考慮寫成紙質(zhì)的,之后錄制成小視頻來呈現(xiàn),文章內(nèi)容側(cè)重于算法的實現(xiàn).其次實現(xiàn)中出現(xiàn)的語法也會講解.

在這個demo中使用了注解的功能,個人覺得如果想寫出健壯得code或者看起來code有點厲害(這屬于裝逼需求了),可以使用.

Python 注解+參數(shù)+返回值小結(jié)在一年的年初,我寫過一篇相關(guān)的文章.

typing是Python3.5中開始新增的專用于類型注解(type hints)的模塊,為Python程序提供靜態(tài)類型檢查.

回調(diào)函數(shù)可以使用類似Callable[[Arg1Type, Arg2Type],ReturnType]的類型注釋.

pYYBAGLFSvaADONbAABUwkJhwyM810.jpg

callable也是demo里面使用的

pYYBAGLFSv2ABFWsAAE8TfcOD34313.jpg

根據(jù)整潔代碼這本書的意思哇,一個好的代碼是不言而喻的,本身就在述說著一切,在Python里面是使用的字符串文檔.

其次在工程的代碼里面,測試是一個不容錯過的環(huán)節(jié),但是對于一個小的程序不必要寫龐大的單元測試,對這個問題Python有更有趣的實現(xiàn):

doctest是Python自帶的一個模塊。doctest有兩種使用方式:一種是嵌入到python源碼中,另外一種是放到一個獨(dú)立文件。

doctest模塊會搜索那些看起來像是Python交互式會話中的代碼片段,然后嘗試執(zhí)行并驗證結(jié)果。

多說無疑,寫段代碼看看:

poYBAGLFSwOAW0jeAADseiGRTq4865.jpg

注意""""""這個里面的內(nèi)容

最后的參數(shù)是:verbose參數(shù),如果設(shè)置為True則在執(zhí)行測試的時候會輸出詳細(xì)信息。默認(rèn)是False,表示運(yùn)行測試時,只有失敗的用例會輸出詳細(xì)信息,成功的測試用例不會輸出任何信息。

pYYBAGLFSx6AQh6hAABcw4_bnyA201.jpg

一個詳細(xì)的輸出結(jié)果

內(nèi)容回到眼前:“波爾查諾-維爾斯特拉斯定理是指有界數(shù)列必有收斂子列。從極限點的角度來敘述致密性定理,就是:有界數(shù)列必有極限點?!闭业絘b之間為0的位置.

poYBAGLFS12AbYUNAABAsxmOe4E291.jpg

導(dǎo)入模塊,把函數(shù)的框架寫一下,注意這里使用了注解,三個參數(shù)后兩個都是f類型,返回也是f類型.第一個參數(shù)是要傳遞一個函數(shù)進(jìn)去,下面是這個函數(shù)的demo的樣子.

poYBAGLFS2SAe6mmAABVnd5y4S0082.jpg

這里寫一個小函數(shù),也使用一下注解

下面寫函數(shù)體:

poYBAGLFS2qAIta-AAERhtKf-K8937.jpg

pYYBAGLFS3CAFsv5AABJsaRrLMo241.jpg

一開始就是我們的參數(shù)了,這里也有注解

如果里面的任意一個是0,這就是根了,數(shù)學(xué)問題.

pYYBAGLFS6GAQbWnAABWC_F_ewI418.jpg

如果兩個函數(shù)乘大于0,會觸發(fā)一個值錯誤,因為這就不是一個穿根的樣子

pYYBAGLFS6iAOxM-AAClkWCaqfU654.jpg

這段代碼其實是含金量最高的代碼了,首先我們每次要確定的X位置,先定義,我們使用while循環(huán),它適合一開始不知道次數(shù)的循環(huán),但是我們知道它停止的范圍,至于為什么是10-7這個,其實我老師說,就是100W/1就和0一樣大了.減完以后發(fā)現(xiàn)大于0,那么就要繼續(xù)運(yùn)算,先要確認(rèn)一下mid是不是就為零點了,如果是就返回,負(fù)責(zé)的話,這里就是計算值,下面的交換變量其實很重要,完成了重要局部參數(shù)的傳遞,接著繼續(xù)二分計算.

pYYBAGLFS6-AIXSyAABqhJQfdFE475.jpg

調(diào)用的時候就是這樣

pYYBAGLFS8WAOmztAAAVI0q5R_8200.jpg

因為是Callable函數(shù),所以一個短小的匿名函數(shù)更適合這樣的場景。

審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4629

    瀏覽量

    93250
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4807

    瀏覽量

    84979

原文標(biāo)題:Python實現(xiàn)所有算法-二分法

文章出處:【微信號:TT1827652464,微信公眾號:云深之無跡】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    使用Python實現(xiàn)xgboost教程

    使用Python實現(xiàn)XGBoost模型通常涉及以下幾個步驟:數(shù)據(jù)準(zhǔn)備、模型訓(xùn)練、模型評估和模型預(yù)測。以下是一個詳細(xì)的教程,指導(dǎo)你如何在Python中使用XGBoost。 1. 安裝XGBoost
    的頭像 發(fā)表于 01-19 11:21 ?374次閱讀

    一個月速成python+OpenCV圖像處理

    適用于哪些場景,然后通過Python編寫代碼來實現(xiàn)這些算法,并應(yīng)用于實際項目中,實現(xiàn)圖像的檢測、識別、分類、定位、測量等目標(biāo)。本文將介紹一個高效學(xué)習(xí)
    的頭像 發(fā)表于 11-29 18:27 ?189次閱讀
    一個月速成<b class='flag-5'>python</b>+OpenCV圖像處理

    【「從算法到電路—數(shù)字芯片算法的電路實現(xiàn)」閱讀體驗】+內(nèi)容簡介

    內(nèi)容簡介這是一本深入解讀基礎(chǔ)算法及其電路設(shè)計,以打通算法研發(fā)到數(shù)字IC設(shè)計的實現(xiàn)屏障,以及指導(dǎo)芯片設(shè)計工程師從底層掌握復(fù)雜電路設(shè)計與優(yōu)化方法為目標(biāo)的專業(yè)技術(shù)書。任何芯片(如WiFi芯片、5G芯片
    發(fā)表于 11-21 17:14

    【「從算法到電路—數(shù)字芯片算法的電路實現(xiàn)」閱讀體驗】+介紹基礎(chǔ)硬件算法模塊

    作為嵌入式開發(fā)者往往比較關(guān)注硬件和軟件的協(xié)調(diào)。本書介紹了除法器,信號發(fā)生器,濾波器,分頻器等基本算法的電路實現(xiàn),雖然都是基礎(chǔ)內(nèi)容,但是也是最常用到的基本模塊。 隨著逆全球化趨勢的出現(xiàn),過去的研發(fā)
    發(fā)表于 11-21 17:05

    【「從算法到電路—數(shù)字芯片算法的電路實現(xiàn)」閱讀體驗】+一本介紹基礎(chǔ)硬件算法模塊實現(xiàn)的好書

    作為嵌入式開發(fā)者往往比較關(guān)注硬件和軟件的協(xié)調(diào)。本書介紹了除法器,信號發(fā)生器,濾波器,分頻器等基本算法的電路實現(xiàn),雖然都是基礎(chǔ)內(nèi)容,但是也是最常用到的基本模塊,本書的內(nèi)容比較對本人胃口。 我們先來
    發(fā)表于 11-20 13:42

    如何使用Python實現(xiàn)PID控制

    PID控制(比例-積分-微分控制)是一種常見的反饋控制算法,廣泛應(yīng)用于工業(yè)控制系統(tǒng)中。在Python實現(xiàn)PID控制,我們可以遵循以下步驟: 1. 理解PID控制原理 PID控制器有三個主要參數(shù)
    的頭像 發(fā)表于 11-14 09:09 ?659次閱讀

    名單公布!【書籍評測活動NO.46】從算法到電路 | 數(shù)字芯片算法的電路實現(xiàn)

    :elecfans123)領(lǐng)取書籍進(jìn)行評測,如在5個工作日內(nèi)未聯(lián)系,視為放棄本次試用評測資格! 《從算法到電路——數(shù)字芯片算法的電路實現(xiàn)》 是一本深入解讀基礎(chǔ)算法及其電路設(shè)計,以打通
    發(fā)表于 10-09 13:43

    C加密算法實現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《C加密算法實現(xiàn).pdf》資料免費(fèi)下載
    發(fā)表于 09-20 11:10 ?1次下載
    C加密<b class='flag-5'>算法</b>的<b class='flag-5'>實現(xiàn)</b>

    Python建模算法與應(yīng)用

    上成為理想的腳本語言,特別適用于快速的應(yīng)用程序開發(fā)。本文將詳細(xì)介紹Python在建模算法中的應(yīng)用,包括常見的建模算法、Python在建模中的優(yōu)勢、常用庫以及實際案例。
    的頭像 發(fā)表于 07-24 10:41 ?643次閱讀

    如何實現(xiàn)Python復(fù)制文件操作

    Python 中有許多“開蓋即食”的模塊(比如 os,subprocess 和 shutil)以支持文件 I/O 操作。在這篇文章中,你將會看到一些用 Python 實現(xiàn)文件復(fù)制的特殊方法。下面我們開始學(xué)習(xí)這九種不同的方法來
    的頭像 發(fā)表于 07-18 14:53 ?466次閱讀

    使用Python進(jìn)行自然語言處理

    在探討使用Python進(jìn)行自然語言處理(NLP)的廣闊領(lǐng)域時,我們首先需要理解NLP的基本概念、其重要性、Python在NLP中的優(yōu)勢,以及如何通過Python實現(xiàn)一些基礎(chǔ)的NLP任務(wù)
    的頭像 發(fā)表于 07-04 14:40 ?493次閱讀

    神經(jīng)網(wǎng)絡(luò)的基本原理及Python編程實現(xiàn)

    神經(jīng)網(wǎng)絡(luò)作為深度學(xué)習(xí)算法的基本構(gòu)建模塊,模擬了人腦的行為,通過互相連接的節(jié)點(也稱為“神經(jīng)元”)實現(xiàn)對輸入數(shù)據(jù)的處理、模式識別和結(jié)果預(yù)測等功能。本文將深入探討神經(jīng)網(wǎng)絡(luò)的基本原理,并結(jié)合Python編程
    的頭像 發(fā)表于 07-03 16:11 ?773次閱讀

    FPGA能實現(xiàn)什么樣的算法?

    FPGA功能如此強(qiáng)大,請問用FPGA能實現(xiàn)或者比較適合實現(xiàn)什么樣的算法?
    發(fā)表于 05-26 20:18

    如何使用Python生成四位隨機(jī)數(shù)字

    為了實現(xiàn)這些目標(biāo),Python 為我們提供了random() 模塊。random() 是一個內(nèi)置的 Python 模塊,用于生成隨機(jī)數(shù)。
    的頭像 發(fā)表于 04-15 12:47 ?749次閱讀

    Raspberry Pi樹莓派使用Python實現(xiàn)MQTT通信設(shè)計

    這次的例子,主要講述如何基于PYTHON的 MQTT 客戶端的使用方法
    的頭像 發(fā)表于 03-14 11:45 ?911次閱讀
    Raspberry Pi樹莓派使用<b class='flag-5'>Python</b><b class='flag-5'>實現(xiàn)</b>MQTT通信設(shè)計