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

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

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

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

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

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

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

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

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ù)整潔代碼這本書的意思哇,一個(gè)好的代碼是不言而喻的,本身就在述說著一切,在Python里面是使用的字符串文檔.

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

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

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

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

poYBAGLFSwOAW0jeAADseiGRTq4865.jpg

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

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

pYYBAGLFSx6AQh6hAABcw4_bnyA201.jpg

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

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

poYBAGLFS12AbYUNAABAsxmOe4E291.jpg

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

poYBAGLFS2SAe6mmAABVnd5y4S0082.jpg

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

下面寫函數(shù)體:

poYBAGLFS2qAIta-AAERhtKf-K8937.jpg

pYYBAGLFS3CAFsv5AABJsaRrLMo241.jpg

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

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

pYYBAGLFS6GAQbWnAABWC_F_ewI418.jpg

如果兩個(gè)函數(shù)乘大于0,會(huì)觸發(fā)一個(gè)值錯(cuò)誤,因?yàn)檫@就不是一個(gè)穿根的樣子

pYYBAGLFS6iAOxM-AAClkWCaqfU654.jpg

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

pYYBAGLFS6-AIXSyAABqhJQfdFE475.jpg

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

pYYBAGLFS8WAOmztAAAVI0q5R_8200.jpg

因?yàn)槭荂allable函數(shù),所以一個(gè)短小的匿名函數(shù)更適合這樣的場景。

審核編輯:劉清

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

    關(guān)注

    23

    文章

    4552

    瀏覽量

    92023
  • python
    +關(guān)注

    關(guān)注

    53

    文章

    4753

    瀏覽量

    84077

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

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

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

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

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

    通過Python腳本實(shí)現(xiàn)WIFI密碼的自動(dòng)猜解

    本文將記錄學(xué)習(xí)下如何通過 Python 腳本實(shí)現(xiàn) WIFI 密碼的自動(dòng)猜解。
    的頭像 發(fā)表于 01-25 10:46 ?2663次閱讀
    通過<b class='flag-5'>Python</b>腳本<b class='flag-5'>實(shí)現(xiàn)</b>WIFI密碼的自動(dòng)猜解

    如何使用Python進(jìn)行圖像識(shí)別的自動(dòng)學(xué)習(xí)自動(dòng)訓(xùn)練?

    如何使用Python進(jìn)行圖像識(shí)別的自動(dòng)學(xué)習(xí)自動(dòng)訓(xùn)練? 使用Python進(jìn)行圖像識(shí)別的自動(dòng)學(xué)習(xí)和自動(dòng)訓(xùn)練需要掌握一些重要的概念和技術(shù)。在本文中,我們將介紹如何使用Python中的一些常用庫和算法
    的頭像 發(fā)表于 01-12 16:06 ?446次閱讀

    傳感器數(shù)據(jù)融合算法python代碼

    的原理和應(yīng)用,并給出一些使用Python編程語言實(shí)現(xiàn)傳感器數(shù)據(jù)融合算法的示例代碼。 首先,讓我們來了解傳感器數(shù)據(jù)融合算法的原理。傳感器數(shù)據(jù)融合算法
    的頭像 發(fā)表于 12-15 10:28 ?1173次閱讀

    python打印出abcd的所有排列組合

    如何使用Python生成"abcd"的所有排列組合,我們首先需要了解排列和組合的概念。排列是一組元素的有序排列,而組合是一組元素的無序選擇。 為了打印出"abcd"的所有排列組合,我們可以使用遞歸函數(shù)來
    的頭像 發(fā)表于 11-29 16:29 ?1019次閱讀

    繪制同切圓python代碼怎么運(yùn)行

    繪制同切圓是一個(gè)很有趣的數(shù)學(xué)問題,可以使用Python語言進(jìn)行實(shí)現(xiàn)。在這篇文章中,我們將探討同切圓的概念、繪制同切圓的算法Python代碼的實(shí)現(xiàn)
    的頭像 發(fā)表于 11-28 15:55 ?1264次閱讀

    python里item的用法

    item是Python中一個(gè)非常重要的概念,它可以用于多種數(shù)據(jù)結(jié)構(gòu)和算法實(shí)現(xiàn)。在Python中,item通常用于表示一個(gè)集合或序列中的一個(gè)元素。本文將詳細(xì)介紹item的用法,并探討它
    的頭像 發(fā)表于 11-21 15:09 ?2997次閱讀

    Python中Excel轉(zhuǎn)PDF的實(shí)現(xiàn)步驟

    將Excel文件轉(zhuǎn)換為PDF可以方便儲(chǔ)存表格數(shù)據(jù),此外在打印或共享文檔時(shí)也能確保表格樣式布局等在不同設(shè)備和操作系統(tǒng)上保持一致。今天給大家分享一個(gè)使用第三方Python庫Spire.XLS for Python 實(shí)現(xiàn)Excel轉(zhuǎn)P
    的頭像 發(fā)表于 11-20 15:02 ?801次閱讀
    <b class='flag-5'>Python</b>中Excel轉(zhuǎn)PDF的<b class='flag-5'>實(shí)現(xiàn)</b>步驟

    怎么在Python實(shí)現(xiàn)截圖功能

    操作。 今天Python實(shí)用寶典就來講講怎么在Python實(shí)現(xiàn)截圖功能,以下教程默認(rèn)您已經(jīng)安裝好了Python哦,沒有的話見這個(gè)教程, pytho
    的頭像 發(fā)表于 11-03 15:32 ?833次閱讀
    怎么在<b class='flag-5'>Python</b>中<b class='flag-5'>實(shí)現(xiàn)</b>截圖功能

    Python 模擬鍵盤鼠標(biāo)的方式實(shí)現(xiàn)自動(dòng)化

    在某些情況下,如果我們需要進(jìn)行自動(dòng)化操作的應(yīng)用沒有提供相應(yīng)的接口,我們無法直接通過Python來調(diào)用API實(shí)現(xiàn)自動(dòng)化。這種情況下,Python也不是完全沒有辦法的,我們可以采用模擬鍵盤和鼠標(biāo)的方式
    的頭像 發(fā)表于 11-02 14:48 ?1053次閱讀
    <b class='flag-5'>Python</b> 模擬鍵盤鼠標(biāo)的方式<b class='flag-5'>實(shí)現(xiàn)</b>自動(dòng)化

    什么是常量折疊?Python如何優(yōu)雅地實(shí)現(xiàn)

    求值,然后用求值的結(jié)果來替換表達(dá)式,從而使得運(yùn)行時(shí)更精簡。 在本文中, 我們深入探討了什么是常量折疊,了解了它在 Python 世界中的適用范圍,最后解讀了 Python 的源代碼(即 CPython),并分析出 Python
    的頭像 發(fā)表于 10-30 11:10 ?415次閱讀
    什么是常量折疊?<b class='flag-5'>Python</b>如何優(yōu)雅地<b class='flag-5'>實(shí)現(xiàn)</b>它

    基于OpenVINO Python API部署RT-DETR模型

    RT-DETR 是在 DETR 模型基礎(chǔ)上進(jìn)行改進(jìn)的,一種基于 DETR 架構(gòu)的實(shí)時(shí)端到端檢測器,它通過使用一系列新的技術(shù)和算法,實(shí)現(xiàn)了更高效的訓(xùn)練和推理,我們將在 Python、C++、C# 三個(gè)
    的頭像 發(fā)表于 10-20 11:15 ?779次閱讀
    基于OpenVINO <b class='flag-5'>Python</b> API部署RT-DETR模型

    密碼算法實(shí)現(xiàn)的SCA防護(hù)

    對(duì)于安全控制器而言,密碼算法實(shí)現(xiàn)與安全性緊密相關(guān),密碼算法實(shí)現(xiàn)
    的頭像 發(fā)表于 10-11 09:12 ?510次閱讀