計算機(jī)科學(xué)家與數(shù)學(xué)家類似,他們使用形式語言來描述理念劫瞳。
計算機(jī)科學(xué)家與工程師類似,他們設(shè)計產(chǎn)品绷柒,將原件組裝成系統(tǒng)志于,對不同的方案進(jìn)行評估選擇。
計算機(jī)科學(xué)技與自然科學(xué)家類似废睦,他們觀察復(fù)雜系統(tǒng)的行為伺绽,構(gòu)建科學(xué)假說,并檢驗(yàn)其預(yù)測嗜湃。
作為計算機(jī)科學(xué)家最重要的技能就是 問題求解 奈应。
- 問題求解就是發(fā)現(xiàn)問題,創(chuàng)造性地思考解決的方案以及清晰準(zhǔn)確地表達(dá)解決方案的能力购披。
一 :什么是程序
- 程序 是指一組定義如何進(jìn)行計算的指令的集合杖挣。
- 有那些指令呢?
輸入:從鍵盤刚陡,文件或者其他設(shè)備中獲取數(shù)據(jù)惩妇。
輸出:將數(shù)據(jù)顯示到屏幕,保存到文件中筐乳,或者發(fā)送到網(wǎng)絡(luò)上等歌殃。
數(shù)學(xué):進(jìn)行基本的數(shù)學(xué)操作。
條件執(zhí)行:檢查某種條件的狀態(tài)蝙云,并執(zhí)行相應(yīng)的代碼氓皱。
重復(fù):重復(fù)執(zhí)行某種動作,往往在重復(fù)中有一些變化
五:值和類型
- 值 是程序操作的最基本的東西贮懈,如一個字母或者數(shù)字匀泊。
- 值的類型优训。
1:整型(int)
2:浮點(diǎn)型(float)
3:字符串(string)
如何確定一個值的類型。
六:形式語言和自然語言
自然語言是指人們所說的語言各聘,如英語揣非,西班牙語。他們不是由人設(shè)計而來的躲因,而是自然演化而來的早敬。
形式語言則是人們?yōu)榱颂厥庥猛驹O(shè)計的語言。例如數(shù)學(xué)上使用的符號體系是一種特別擅于表示數(shù)字和符號之間關(guān)系的形式語言大脉;化學(xué)家則是使用另一種形式語言來表示化學(xué)結(jié)構(gòu)搞监。而最重要的是:
編程語言是人們?yōu)榱吮磉_(dá)計算過程而設(shè)計出來的形式語言形式語言的語法規(guī)則:
形式語言的語法規(guī)則分為兩種:
分別適用于記號和結(jié)構(gòu)
指定記號所組合的方式。
- 什么是語法分析:
當(dāng)你閱讀英語的句子或形式語言的語句時镰矿,需要弄清句子的結(jié)構(gòu)是什么琐驴,這個過程稱為語法分析
- 形式語言和自然語言之間的區(qū)別:
歧義性:形式語言通常設(shè)計為幾乎或者完全沒有歧義,即不論上下文環(huán)境如何秤标,任何表達(dá)式只有一個含義绝淡。
冗余性:為了彌補(bǔ)歧義,減少誤解苍姜,自然語言采用大量的冗余牢酵。因此,自然語言往往很啰嗦衙猪。形式語言則相對不那么冗余馍乙,更加簡潔。
程序 :計算機(jī)程序的意義不含歧義垫释,直接如字面所指丝格,完全可以通過它的記號和結(jié)構(gòu)理解其意義。
形式語言的密度遠(yuǎn)遠(yuǎn)大于自然語言饶号,所以閱讀起來需要花費(fèi)更多的時間铁追。還有結(jié)構(gòu)非常重要,所以直接自頂向下茫船,從左至右的閱讀順序并不一定是最好的琅束。相反,要試著在頭腦中解析程序算谈,辨別出記號并解析出結(jié)構(gòu)涩禀。最后,細(xì)節(jié)很重要然眼,在自然語言中常嘲可以忽略的小錯誤,如拼寫錯誤和符號錯誤,在形式語言中往往會造成很大的差別
七:調(diào)試
程序錯誤被成為bug屿岂,而插捕bug的過程成為調(diào)試
程序中可能出現(xiàn)的三種類型的錯誤:語法錯誤践宴, 運(yùn)行時錯誤,語義錯誤
八:術(shù)語表
問題求解(problem solving):總結(jié)問題子檀,尋找解決方案以及表達(dá)解決方案的過程
高級語言(high-level language): 設(shè)計來方便人們讀寫的編程語言苍蔬,如python。
低級語言(low-level language):設(shè)計來方便計算機(jī)執(zhí)行的編程語言洒忧,也被稱為“機(jī)器語言”或“匯編語言”
可移植性(portability):程序的一種屬性运授,可以在多種類型的計算機(jī)(系統(tǒng))上執(zhí)行烤惊。
解釋器(interpreter):一個讀取其他程序并執(zhí)行其內(nèi)容的程序。
提示符(prompt):解釋器顯示的文字吁朦,提示用戶已經(jīng)準(zhǔn)備好接收用戶的輸入柒室。
程序(program):一系列代碼指令的集合,指定一種運(yùn)算逗宜。
print語句(pring statement):一個指令雄右,可以通知python解釋器在屏幕上顯示一個值。
操作符(operator):一種特殊的符號锦溪,用來表達(dá)加法,乘法或字符串拼接等簡單的運(yùn)算不脯。
值(value):程序操作的數(shù)據(jù)基本單位府怯,如一個數(shù)字或一個字符串刻诊。
類型(type):值的類別。
整型(integer):用來表示整數(shù)的類型牺丙。
浮點(diǎn)型(floating-point):用來表示帶小數(shù)部分的書的類型则涯。
字符串(string):用來表示一串字符的類型。
自然語言(natural-language):自然演化而來的人們所說的語言冲簿。
形式語言(formal-language):人們設(shè)計為某些特定的目的設(shè)計的任何語言粟判。所有編程語言都屬于形式語言。
記號(token):程序的語法結(jié)構(gòu)的最基本單位峦剔,類似于自然語言中的詞档礁。
語法(syntax):用于控制程序結(jié)構(gòu)的規(guī)則
語法分析(parse):檢查程序并分析其語法結(jié)構(gòu)。
bug:程序中的錯誤
調(diào)試(debugging):發(fā)現(xiàn)和糾正bug的過程吝沫。