Hello World!回憶上次內容
我們這次設置了斷點
調試 debug
這個bug蟲子🕷是有歷史淵源的
設置斷點的目的是更快地調試
調試的目的是去除 bug
別害怕 bug
一步步地總能找到 bug
這就是程序員基本功
編程也是有歷史迷因的
為什麼寫程序都從hello world開始?🤔
為啥總是Hello World
奇怪🧐
不論學習什麼編程語言
總是從Hello World開始
為什麼呢?🤔
起源
這一切都要從頭說起
linux 操作系統的老祖宗 unix
和 unix 對應的編程語言 c
那是一切開始的地方
兩人
1969 年,由於所在 at&t 貝爾實驗室的 Multics 項目失敗
無所事事的兩人
Kenneth Thompson
Dennis Ritchie
遊戲
希望能在 PDP 機器上繼續玩一個遊戲
這個遊戲是 Multics 下的 star travel
為了玩這個遊戲
他們想要做一個操作系統 unix
為了製作操作系統
他們創造了 c 語言的編譯器
當時
c 是他們為了開發 unix 而製作的語言
unix 是為了能玩 star travel 而製作的系統
hello world!
c 和 unix 只能運行在當時的機器上
沒有文檔
沒有書籍
甚至沒有人知道
與他們同在 bell 實驗室的 Brian Wilson Kernighan a.k.a bwk
開始寫 c 語言的類似於文檔說明書的東西
手稿
主體的函數叫做 main函數
裡面輸出函數叫做 printf函數
不管是main函數,還是printf函數都有小括號
小括號 從那個時候就和函數相關
為什麼輸出字符要用printf來當做函數名呢?
print 來歷
1974 年的手稿😱
寫在打字機用紙的上面
側面的空洞是向上送紙用的
是不是很像膠片
打字機就是當時的顯示器
所以用 print 來表示輸出
f 的意思是 format 格式
printf 是按格式輸出
細節
printf函數 後面有 小括號
函數print 的 參數 是 "hello world"
小括號 裡面放的是 函數 的 參數
print("hello world") 中
雙引號 引起來意味着hello world 是 字符串
輸出的內容就是這個字符串 ("hello world")
小括號和雙引號的風格延續到了 python
從 c語言 開始
所有的編程語言第一個例子都是hello world
是一種規矩或者文化
最早的入門教學程序都做一個hello world
習慣成自然之後
這個梗一直流傳到今天
除了時間因素之外
還有一個重要的原因
成書
有了教材就有更多人學
有更多人學就有更多人參與其中
正反饋在逐漸成型
教材風格
1978 年,Kernighan和Ritchie出版了這本書
不厚,很薄
輕鬆的語言風格
因為 c 的目的就是讓人像玩一樣編程
而不是記憶各種 cpu 匯編指令
蓬勃發展的計算機技術
使得 c 語言成為系統語言的老大
python 的源代碼就是用純 c 編的
linux 內核 也是用純 c 編的
所以c還是非常核心的啊
雖說 python 是用純 c 編寫的
不過 python 一旦出現之後就可以簡化好多東西
比如我們的遊樂場裡面有很多的函數和模塊
我們為什麼能認識print?
而不認識pront?
內置函數
dir()
可以看到遊樂場上來就自帶的模塊
比如 dir() 這個函數
dir的意思是directory 文檔目錄
這裡列出的是已經導入模塊的目錄
調用這個函數可以知道當前遊樂場載入了哪些模塊
比如 __builtins__ 這個模塊
這 __builtins__ 裡面又有些什麼呢?
dir()
dir(__builtins__)
注意前後都是兩個下劃線
__builtins__ 意思是在裡面構建好的
exit()
print()
dir()
help()
這裡面有好多內置的函數
包括我們熟悉的
為什麼print直接就能用
因為他在默認的這個__builtins__模塊中
如果我想要查詢print函數更詳細的信息應該如何呢?
help(print)
什麼不會就help什麼
help(print)
把函數名作為參數傳進去
類似的還可以查詢
help(quit)
help(dir)
help(help)
如果我想要查詢__builtins__模塊更詳細的信息應該如何呢?
help(__builtins__)
help(__builtins__)
注意內置模塊builtins左右各有兩個下劃線
我們可以查詢到__builtins__模塊的幫助文件
還可以引入外部模塊
返回的這些函數和子模塊都隸屬於 __builtins__ 這個模塊
除了內置的、這些不用引入就可以用的模塊之外
導入外部模塊
就像我們上次導入ast一樣
這次我們導入的是__hello__
注意hello兩邊都有兩個下劃線
import __hello__
import
port是港口 來自於海洋文化
import 是進口 是導入
export 是出口 是導出
import 後面接空格
然後是被導入的外部模塊名稱 __hello__
hello左右也是兩個下劃線
把__hello__模塊導入到遊樂場
可以輸出經典的一句話
注意!
導入 __hello__ 模塊前後遊樂場中的模塊增加了
想要深入了解 __hello__ 應該怎麼辦呢?
什麼不會就help什麼help(__hello__)
總結
hello world 不是從來就有的
來自於unix和c
雖然我們今天有各種先進的學習手段
最早的高級語言學習是從最早的那張打字機用紙的手寫代碼起源的
輸出用的函數名是 print 打印
也是從那個時候來的
最早輸出的是字符串是 "hello world"
也是從那個時候來的
這就成了一個迷因
等等!
計算機裡面不都是二進制的 0 和 1 嗎
哪裡來的hello 中的 h 之類的
藍橋->https://www.lanqiao.cn/teacher/3584
github->https://github.com/overmind1980/oeasy-python-tutorial
gitee->https://gitee.com/overmind1980/oeasypython
視頻->https://www.bilibili.com/video/BV1CU4y1Z7gQ 作者:oeasy