close

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

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()