官术网_书友最值得收藏!

1.1.1 算法思維

假設你遇到了這樣一個情況:你需要向一個從未開過車的朋友描述怎樣把車從私家車道上倒出來。

你需要將上述任務分解成若干簡單明了的步驟,便于你的朋友理解。例如,你可以向你的朋友提供以下一組指令:

1  插入鑰匙。
2  轉動鑰匙,直到汽車發動,然后松手。
3  按下換擋桿上的按鈕,并將其移至“倒擋”。
4  ……

遺憾的是,對于許多汽車來說,即使你的朋友理解每個指令,這個“代碼”也無法工作,因為它有一個程序錯誤。在第3步之前,許多汽車要求駕駛員:

踩下左踏板。

另外,擋位的標記可能是“R”而不是“倒擋”。在編寫這樣的指令時,很難在一開始就達到較高的精度要求。

因為你的指令不是跟隨操作進度而實時給出的,所以還需要考慮一些可能發生的意外情況:

如果聽到嘎吱聲,踩下左踏板……

將較長的操作步驟分解為小的且明確的子步驟并預先考慮意外情況是算法思維的開始。

如果你的朋友有很多看別人開車的經驗,那么上面的指令可能就足夠他理解操作步驟了。但如果面對的是機器人,則需要更多的細節。例如,前兩個步驟可能需要擴展為以下內容:

抓住鑰匙的寬端。
將鑰匙的尖端插入方向盤柱右下側的槽中。
沿順時針方向(當從寬端向尖端看時)圍繞其長軸旋轉鑰匙。
……

這兩組指令說明了跟計算機溝通時低級語言和高級語言的差異。低級計算機程序類似于第二組明確指令,用機器能夠理解的語言編寫[1]高級系統可以理解許多常見任務,因此可以以較為簡潔的方式編程,類似于上面的第一組指令。Python是一種高級語言,它提供了許多常用的命令,例如數學計算、文本處理和文件處理。另外,Python還可以調用許多標準庫,這些標準庫包含一系列程序,可以執行數據可視化和圖像處理等高級功能。


[1] 機器代碼和匯編語言是低級編程語言。

Python還附帶了一個命令行解釋器——在此程序中,輸入Python命令后即可執行這些命令。因此,在Python中,既可以將指令保存在文件中以便未來運行,又可以輸入命令立即執行。相比之下,科學計算中使用的許多其他編程語言,如C++或Fortran,則會要求在執行程序之前先編譯程序。一個叫作編譯器的獨立程序會將你的代碼翻譯成低級語言。然后,運行生成的編譯程序來執行(實現)算法。而使用Python,快速編寫、運行和調試程序都相對容易(不過,這仍然需要耐心和練習)。

命令行解釋器結合標準庫和你自己編寫的程序,構成了一個既方便又強大的科學計算平臺。

主站蜘蛛池模板: 邹平县| 德钦县| 汾西县| 莱西市| 泗阳县| 河间市| 新竹市| 扬中市| 三原县| 荣成市| 黎城县| 东方市| 南开区| 抚州市| 宁晋县| 东阳市| 威远县| 尚义县| 宁武县| 铁力市| 五寨县| 元江| 民丰县| 广宗县| 呼和浩特市| 九江县| 洞头县| 土默特左旗| 高淳县| 新田县| 岱山县| 吴忠市| 望奎县| 信阳市| 驻马店市| 宁都县| 汾西县| 双柏县| 从江县| 普格县| 佛山市|