Chapter0 計算機(jī)科學(xué)
計算級科學(xué)银还?
任何領(lǐng)域风宁,凡是在氣名稱中含有“科學(xué)”字眼的,保證不是一門科學(xué)见剩。
--Frank Harary
1.提出問題杀糯,但無法解決,在計算機(jī)能解決的問題的范疇中
e.g.Halting Problem
2.計算效率--時間是一項重要指標(biāo)
3.算法和數(shù)據(jù)結(jié)構(gòu)--計算機(jī)科學(xué)家認(rèn)為最有價值的部分
算法:解決問題的方法
數(shù)據(jù)結(jié)構(gòu):算法中的所用的數(shù)據(jù)的組織結(jié)構(gòu)
4.并行處理--往往被視作高級主題
5.軟件工程--編寫程序的過程苍苞,包括算法設(shè)計到支撐測試固翰,再到程序完成后的維護(hù)工作
6.其他--
編程的困難
0.通過編程來學(xué)習(xí)計算機(jī)科學(xué),探索計算機(jī)科學(xué)的本質(zhì)
1.同時做兩件事--1.1對要使用的程序設(shè)計語言的語法羹呵、語義不熟悉
1.2不知如何使用計算機(jī)來解決問題
2.好程序的標(biāo)準(zhǔn)--2.1解決問題--先思考
2.2程序應(yīng)該是具有可讀性的短文
3.程序的使命--程序員想法的清晰呈現(xiàn)骂际,開放,普適
選語言
0.選python--學(xué)習(xí)簡便冈欢,能解決實(shí)際問題歉铝,能夠支撐多個學(xué)科(程序包,支撐程序)
1.python理念--簡潔
2.最佳實(shí)踐語言--python凑耻,支持很多
3.開放源代碼的軟件--python
4.無最好的語言
計算
0.什么是計算--是由人類或機(jī)器對數(shù)據(jù)進(jìn)行操作
1.什么是計算機(jī)--進(jìn)行計算的實(shí)體太示,其特征:能接受數(shù)據(jù),計算機(jī)必須由計算能力
e.g.人腦--神經(jīng)細(xì)胞內(nèi)信號受用遠(yuǎn)慢于電力傳輸?shù)幕瘜W(xué)變化傳輸香浩,且內(nèi)置1ms/神經(jīng)細(xì)胞的時間延遲类缤,“觸發(fā)”是對信號數(shù)量(多少個神經(jīng)元在被觸發(fā))和信號強(qiáng)度(多少神經(jīng)遞質(zhì)被傳遞到突觸)的組合進(jìn)行響應(yīng)
2.計算進(jìn)化--生物物種的進(jìn)化--計算的過程
計算輸入的是生物尸體接受的環(huán)境變量
計算過程是基因編碼調(diào)整適應(yīng)的過程
計算輸出的是遺傳密碼修改的適應(yīng)結(jié)果
3.計算機(jī)--3.1開關(guān)--bull —0,1—
3.2晶體管--1947邻吭,bell實(shí)驗室William Shockley,John Bardeen和Wlater Brattain(1956 Nobel Prize)尺寸更小餐弱,數(shù)量更多,功能更加強(qiáng)大,更快
Chapter1 開始編程
入門
注釋:向人們解釋我們要計算機(jī)做什么
#好的注釋不是重復(fù)代碼或解釋代碼膏蚓,而是指出代碼想要做什么瓢谢,抽象層面上的意義
#若代碼包含新穎,值得關(guān)注的方法
標(biāo)記
關(guān)鍵字:and驮瞧, del氓扛, from, not, while, as, elif, global, or, with, assert, else, if, pass, yield, break, except, import, print, class, exec, in, raise, continue, finally, is, return, def, for, lamba, try
運(yùn)算符:+ — * ** / // % << >> & | ^ ~ < > <= >= == != <> += -= *= /= //= %= &= |= ^= >>= <<= **=
標(biāo)點(diǎn)符號和分隔符:( ) [ ] { } , : = ^ : ' " # @ \
命名規(guī)則
1.字母或下劃線開始
2.除首字符外可以是任何字母數(shù)字下劃線的組合
3.不能是關(guān)鍵字中的組合
4.長度不限,大小寫敏感
5.推薦駱駝拼寫法(camelCase)剧董,單詞間無空格幢尚,有新單詞加入則其首字母大寫
命名空間
解釋器維護(hù)
保存名字和相關(guān)值的列表
Long int, Short int,
0~,0x~,2+3j(復(fù)數(shù))
str("",'')……,bool(true=1,false=0)
列表list[4,3.57,'abc']
字典dict{"Jons":3456323,"Larson":23323232,"smith":34324234243}
集合set set([1,3,4])
控制語句
選擇語句if
布爾運(yùn)算符<,>,<=,>=,!=
循環(huán)while 翅楼, for
while 先循環(huán)再判斷
for 先判斷再循環(huán)尉剩,迭代
位移 >> <<