面向醫生的編程—速成課程
英文原文:Programming for Physicians - a crash course
歡迎閱讀這份關于編程的速成課程,其受眾人群是醫生。為什么是醫生?因為從歷史角度看,醫生不是最有可能學習計算機編程的職業,然而,當代能夠說計算機語言(至少在某種程度),對于總體科學研究技能而言,是一個受歡迎的加分項,尤其是數據科學。早些時候,我寫過一篇評論文章“為什么醫生可能想學習計算機編程”,闡述了我是如何考慮這個觀點的。
簡而言之,計算機編程有三個主要部分:
- 數據輸入
- 數據操作
- 數據輸出
注意,這是一個高級的、非常籠統的綜述。輸入可以是用戶輸入的一些文本、鼠標點擊、在移動設備上的觸碰和手勢、從磁盤載入的文件、來自 web 的數據庫,甚至自動化輸入(例如,在某個特定時間觸發代碼)。輸出也可以是一些文本、圖像、聲音、視頻、或任何你能想象到的、將被發送給用戶或某些服務器的東東。
正如你猜測的,數據操作是較有意思的環節,會有魔法發生。實際上,沒有太多的魔法。粗略地講,數據操作也有三個主要部分:
- 計算
- 條件語句
- 循環
變量是你能夠用來存儲信息的參數。當我說“存儲”時,我沒有顯式地指出“存在磁盤”或“存在線上”。首先,它意味著保留(或者如官方的叫法,分 配)你計算機上的某些(工作)內存,你可以把信息臨時放在那里。代碼被執行后,當你不再需要它時,變量就從內存中擦除了。如果你想存儲某些信息(存到磁 盤、閃存盤或遠程服務器上)供日后使用,你不得不明確地去實現。順便說一句,本教程沒有涵蓋后者。但是了解它是有好處的。對于當下,變量是你經常用來操作 的某種參數。
我猜,計算更像是自解釋的。從歷史角度看,計算機被開發為高級計算器,僅在后來才添加了其它功能。計算不同于簡單的數學,更多的是復雜的處理,但本質相同。
條件語句,正如它的叫法。對于護士而言,你可能說,如果病人溫度高于 39 攝氏度,那么你想預定血培養(blood culture),否則他們應該在兩小時后再次測量體溫。條件語句,或“if-else 語句”,用于在程序里做決定。
循環被用于重復的語句。計算機在多次重復同樣任務上,要比人類強很多,循環就是因此而產生的。有兩種循環,所謂的 for 循環和 while 循環。我們將詳細談到它們。
隨著編程規模的擴大,你需要一種方式來組織代碼。函數是避免重復代碼的方法,在更大型的項目里,你能夠針對性地使用模塊(module)或類(class)。我們來一窺函數,按照我們的方式使用一些內置模塊。
注意:模塊和類是不一樣的。模塊本質上只是帶有一些函數的文件,而類被用于叫做面向對象編程(OOP)的編程風格里。OOP 不在本教程范圍內。
在本教程里,我們將使用編程語言 Python。它有著非常直接和可讀的語法,開源、可完全自由使用,當你掌握基礎之后,你就能發現那些使用起來比較有意思的科學上的模塊。
好了,背景信息介紹得已經足夠多了……讓我們開始吧!
— END —
譯文: 《面向醫生的編程—速成課程 》 臘八粥