最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【D1N910】編程習(xí)慣養(yǎng)成與思維學(xué)習(xí)筆記

2023-06-27 11:14 作者:愛(ài)交作業(yè)的D1N910  | 我要投稿

正常操作,正常分析,大家好我是D1N910。


下面是學(xué)習(xí)

https://linklearner.com/#/learn/detail/60

編程習(xí)慣養(yǎng)成與思維 的內(nèi)容




1/7 防御性編程的基本思想

假設(shè)A:不要指望用戶(hù)提供您所需的完美輸入。即使您要求的是正數(shù),用戶(hù)可能會(huì)提供其他類(lèi)型的輸入。


假設(shè)B:即使您是程序的編寫(xiě)者(可能是我,也可能是您自己),程序可能存在錯(cuò)誤。因此,您應(yīng)該意識(shí)到不僅用戶(hù)可能會(huì)犯錯(cuò),程序的其他部分也可能會(huì)出錯(cuò)。


進(jìn)行多樣化的測(cè)試:為了應(yīng)對(duì)可能出現(xiàn)的問(wèn)題,您需要進(jìn)行各種不同的測(cè)試。您的假設(shè)是寧愿在某些事情出錯(cuò)的情況下發(fā)現(xiàn)錯(cuò)誤,而不知道問(wèn)題的具體來(lái)源。


主要原則:要記住的重要事情是,人們普遍有犯錯(cuò)的傾向。因此,編寫(xiě)程序的目標(biāo)是避免在用戶(hù)犯錯(cuò)時(shí)發(fā)生災(zāi)難性后果。


養(yǎng)成防御性編碼的習(xí)慣:為了實(shí)現(xiàn)上述目標(biāo),您需要培養(yǎng)編寫(xiě)防御性編碼的習(xí)慣,即考慮可能出現(xiàn)的錯(cuò)誤和異常情況,并采取相應(yīng)的措施來(lái)防止災(zāi)難發(fā)生。


2/7 科學(xué)分析思維?

迭代問(wèn)題邏輯

1、選擇一個(gè)可以計(jì)算的變量(Choose variable that "count")


2、在外部需要初始化它(Initiative outside the loop)


3、需要設(shè)置正確的最終測(cè)試(Setup and test)


4、構(gòu)建代碼塊(Conctract block)


5、清楚當(dāng)代碼運(yùn)行結(jié)束后該怎么做(What to do when done)


代碼效率

目前需要解決問(wèn)題的增長(zhǎng)速度高于電腦計(jì)算速度的增長(zhǎng)


在時(shí)間、空間恒定的情況下,需要考慮的是:


1、計(jì)算需要多少內(nèi)存

2、輸入大小的函數(shù)所需的基本步驟數(shù)量是多少


3/7 圖靈完備語(yǔ)言

圖靈完備語(yǔ)言包含三部分

1、數(shù)據(jù):數(shù)組、字符串、布爾值

2、操作:數(shù)字運(yùn)算,如+、-、and、or等

3、命令:賦值、輸入/輸出、條件/分支、循環(huán)機(jī)制

有了這三部分,我們就可以做任何事情,包括自然語(yǔ)言學(xué)習(xí),圖像識(shí)別,語(yǔ)音識(shí)別等


4/7?Debugger的思路

debugging的目標(biāo)是朝著沒(méi)有錯(cuò)誤的程序進(jìn)行運(yùn)行。做這個(gè)最好的兩個(gè)工具是打印閱讀代碼(帶著懷疑的眼光看)?首先要發(fā)現(xiàn)產(chǎn)生問(wèn)題的最小輸入,然后進(jìn)行打印測(cè)試。


采用二分法進(jìn)行測(cè)試:

????每次是在代碼中進(jìn)行打印,每次測(cè)試可以排除一半的代碼塊。

????* 自己先預(yù)測(cè)一下結(jié)果會(huì)是什么,耐心冷靜的減小搜索出現(xiàn)問(wèn)題的地方。


請(qǐng)教別人:

????在請(qǐng)教別人的時(shí)候,自己會(huì)把問(wèn)題邏輯整理清楚再去問(wèn)。有時(shí)候在問(wèn)的時(shí)候,問(wèn)了一下,自己就會(huì)恍然大悟,原來(lái)是這樣。


5/7 抽象化、模塊化、封裝代碼

這部分是為了解決閱讀代碼的問(wèn)題。幾十萬(wàn)行的代碼直接理解起來(lái)不是一件簡(jiǎn)單的事情。通常會(huì)把代碼進(jìn)行分成幾個(gè)模塊,一個(gè)模塊負(fù)責(zé)對(duì)應(yīng)相關(guān)的操作。這樣不僅有利于閱讀代碼,同時(shí)也方便后續(xù)的debugger。

例如:機(jī)器學(xué)習(xí)的相關(guān)代碼會(huì)分為數(shù)據(jù)清洗、訓(xùn)練、測(cè)試,三個(gè)大模塊。


6/7?如何知道運(yùn)行代碼的時(shí)間

經(jīng)過(guò)基礎(chǔ)部分的學(xué)習(xí)大家已經(jīng)了解到運(yùn)行不同的代碼是需要不一樣的時(shí)間的。影響代碼運(yùn)行時(shí)間包括但不限于:機(jī)器性能、使用的語(yǔ)言、數(shù)據(jù)量。因此我們不能直接預(yù)估運(yùn)行代碼的時(shí)間,畢竟機(jī)器性能、使用的語(yǔ)言、數(shù)據(jù)量等都會(huì)不同。但是在知道運(yùn)行我們的程序的實(shí)際步驟后會(huì)有利于縮短我們運(yùn)行代碼的時(shí)間。


舉個(gè)例子:魔方復(fù)原,在復(fù)原魔方的時(shí)候,如果一開(kāi)始不知道怎么復(fù)原,沒(méi)有思維邏輯進(jìn)行復(fù)原,可能需要的時(shí)間需要很久。通過(guò)查閱相關(guān)資料與思考,最終可以將復(fù)原魔方幾個(gè)步驟,就可以順利復(fù)原。


所以運(yùn)行代碼的時(shí)間在于你知道你的代碼需要運(yùn)行多少步。思考的邏輯決定了你的運(yùn)行代碼時(shí)間。


7/7 如何修復(fù)他人的代碼

在編程的時(shí)候,我們常常會(huì)借鑒別人的代碼。但因?yàn)榘姹?、運(yùn)行環(huán)境等的影響,并不是每一份代碼都可以完整復(fù)現(xiàn),這時(shí)候就要修復(fù)他人的代碼為我所用。


思路如下(參考(4)Debugger

0、進(jìn)行系統(tǒng)性思考(參考之前的內(nèi)容


1、記錄下每個(gè)你嘗試過(guò)的方式、修改過(guò)地方


2、考慮重新假設(shè)


3、調(diào)試代碼


4、放下自己的驕傲,尋找他人的幫助


5、離開(kāi)一段時(shí)間再回來(lái)修復(fù)


End

【D1N910】編程習(xí)慣養(yǎng)成與思維學(xué)習(xí)筆記的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
合作市| 上虞市| 得荣县| 滨州市| 抚顺县| 渭南市| 武城县| 米林县| 临朐县| 乌兰察布市| 上饶县| 元谋县| 读书| 佛山市| 泰顺县| 德化县| 和平区| 凌海市| 项城市| 华容县| 安徽省| 永平县| 渭源县| 元氏县| 壶关县| 北票市| 尚志市| 五台县| 如东县| 崇义县| 乌拉特前旗| 高清| 车致| 海门市| 绍兴市| 新密市| 临桂县| 杂多县| 阳原县| 黔西县| 九龙城区|