第一章的內(nèi)容其實(shí)是求解線性的方程組.
因?yàn)槲⑿艑讲惶押?可能是我不會),所以理論的東西我會考慮寫成紙質(zhì)的,之后錄制成小視頻來呈現(xiàn),文章內(nèi)容側(cè)重于算法的實(shí)現(xiàn).其次實(shí)現(xiàn)中出現(xiàn)的語法也會講解.
在這個(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]的類型注釋.
callable也是demo里面使用的
根據(jù)整潔代碼這本書的意思哇,一個(gè)好的代碼是不言而喻的,本身就在述說著一切,在Python里面是使用的字符串文檔.
其次在工程的代碼里面,測試是一個(gè)不容錯(cuò)過的環(huán)節(jié),但是對于一個(gè)小的程序不必要寫龐大的單元測試,對這個(gè)問題Python有更有趣的實(shí)現(xiàn):
doctest是Python自帶的一個(gè)模塊。doctest有兩種使用方式:一種是嵌入到python源碼中,另外一種是放到一個(gè)獨(dú)立文件。
doctest模塊會搜索那些看起來像是Python交互式會話中的代碼片段,然后嘗試執(zhí)行并驗(yàn)證結(jié)果。
多說無疑,寫段代碼看看:
注意""""""這個(gè)里面的內(nèi)容
最后的參數(shù)是:verbose參數(shù),如果設(shè)置為True則在執(zhí)行測試的時(shí)候會輸出詳細(xì)信息。默認(rèn)是False,表示運(yùn)行測試時(shí),只有失敗的用例會輸出詳細(xì)信息,成功的測試用例不會輸出任何信息。
一個(gè)詳細(xì)的輸出結(jié)果
內(nèi)容回到眼前:“波爾查諾-維爾斯特拉斯定理是指有界數(shù)列必有收斂子列。從極限點(diǎn)的角度來敘述致密性定理,就是:有界數(shù)列必有極限點(diǎn)?!闭业絘b之間為0的位置.
導(dǎo)入模塊,把函數(shù)的框架寫一下,注意這里使用了注解,三個(gè)參數(shù)后兩個(gè)都是f類型,返回也是f類型.第一個(gè)參數(shù)是要傳遞一個(gè)函數(shù)進(jìn)去,下面是這個(gè)函數(shù)的demo的樣子.
這里寫一個(gè)小函數(shù),也使用一下注解
下面寫函數(shù)體:
一開始就是我們的參數(shù)了,這里也有注解
如果里面的任意一個(gè)是0,這就是根了,數(shù)學(xué)問題.
如果兩個(gè)函數(shù)乘大于0,會觸發(fā)一個(gè)值錯(cuò)誤,因?yàn)檫@就不是一個(gè)穿根的樣子
這段代碼其實(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ì)算.
調(diào)用的時(shí)候就是這樣
因?yàn)槭荂allable函數(shù),所以一個(gè)短小的匿名函數(shù)更適合這樣的場景。
審核編輯:劉清
-
算法
+關(guān)注
關(guān)注
23文章
4631瀏覽量
93434 -
python
+關(guān)注
關(guān)注
56文章
4811瀏覽量
85078
原文標(biāo)題:Python實(shí)現(xiàn)所有算法-二分法
文章出處:【微信號:TT1827652464,微信公眾號:云深之無跡】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
使用Python實(shí)現(xiàn)xgboost教程
一個(gè)月速成python+OpenCV圖像處理
![一個(gè)月速成<b class='flag-5'>python</b>+OpenCV圖像處理](https://file1.elecfans.com/web3/M00/00/7F/wKgZPGdJlvGANv8EAAAl3WfWse8658.png)
【「從算法到電路—數(shù)字芯片算法的電路實(shí)現(xiàn)」閱讀體驗(yàn)】+內(nèi)容簡介
【「從算法到電路—數(shù)字芯片算法的電路實(shí)現(xiàn)」閱讀體驗(yàn)】+介紹基礎(chǔ)硬件算法模塊
【「從算法到電路—數(shù)字芯片算法的電路實(shí)現(xiàn)」閱讀體驗(yàn)】+一本介紹基礎(chǔ)硬件算法模塊實(shí)現(xiàn)的好書
如何使用Python實(shí)現(xiàn)PID控制
名單公布!【書籍評測活動NO.46】從算法到電路 | 數(shù)字芯片算法的電路實(shí)現(xiàn)
C加密算法的實(shí)現(xiàn)
![C加密<b class='flag-5'>算法</b>的<b class='flag-5'>實(shí)現(xiàn)</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論