大家好呀~
前三周都講的是第一章(Chapter 1)搔课,從第四周起三痰,速度開始變快千埃,一周一章藤韵。內(nèi)容也開始豐富起來蒙挑。編程這種邊學(xué)邊實踐的課程還是很好玩的雹洗,能很快把學(xué)到的立即用起來揖庄。筆記來啦肮街。
Week 4
Chapter 2 Variables, Expressions and Statements
第二章 變量先慷、表達(dá)式與語句
聽完課程饮笛,也看完了書,覺得有太多專業(yè)編程語言看起來好繞口论熙,但其實看著操作福青,覺得意思特別簡單直接。所以我就用自己的方式記下我理解的重點脓诡,做成自己的筆記如下无午。歡迎回復(fù)交流。
按照老師的PPT祝谚,最后總結(jié)的這一章的關(guān)鍵詞如下宪迟。
我依次解釋。
Type(類型)
一般分為三種:integer交惯,string和float次泽。
integer--就是整數(shù)數(shù)字穿仪,e.g. 1, 20, 352, ...
string -- 字符串,即文本意荤, e.g. "hello", "56", ...
float --帶小數(shù)點的數(shù)字啊片,e.g. 2.0, 51.23, ...
python里面的值和它的類型是密切相關(guān)的。如果你要做加減乘除各種運(yùn)算玖像,python會先判斷其類型紫谷,只會做同類型的值的運(yùn)算,數(shù)字(float, integer)和數(shù)字(float, integer)捐寥,文本(string)和文本(string)笤昨。舉個例子:
x = "hello"
y = "world"
print x+y
得出的結(jié)果就是 hello world。當(dāng)遇到文本相加時握恳,python自動默認(rèn)為鏈接起來瞒窒。但如果你想讓數(shù)字和文本相加,python就搞不明白了睡互,會讓你更改類型根竿。所以如果想通過hello和123,輸出“hello123” 就珠,應(yīng)該怎么辦呢寇壳?就是把123這個數(shù)字加個引號。
不同類型之間可以互換妻怎,多寫一行代碼就行壳炎。當(dāng)然,上面加“”的方法也算把數(shù)字變文本的簡單方法逼侦。等會兒會在類型轉(zhuǎn)換里詳細(xì)說到匿辩。
Integer Divisions (數(shù)字之間的除法運(yùn)算)
剛剛說了,integer就是整數(shù)榛丢,那么整數(shù)相除铲球,得到的也是整數(shù)。python采用的不是我們常用的四舍五入方式得到整數(shù)值晰赞,而是只取整數(shù)稼病,舍去小數(shù)點后面的數(shù)字。舉例如下:
9/2=4.5掖鱼,在python里得到的結(jié)果就是4然走。
99/100=0.99, 在python里得到的結(jié)果就是0。
那怎么才能得到0.99這個正確的結(jié)果呢戏挡?最簡單的方式就是將你的99或者100變成99.0 或者100.0芍瑞,或者都變也行,這樣python就知道結(jié)果也應(yīng)該有小數(shù)點了褐墅,就會得到0.99拆檬。
注意:只要你加了小數(shù)點即可洪己,不管后面加了幾位數(shù),python都會把小數(shù)點后面該有的數(shù)字都顯示出來秩仆。
還有一種方式码泛,復(fù)習(xí)下剛剛的知識點猾封,float就是有小數(shù)點的數(shù)字澄耍。所以如果我們能把其中一個數(shù)字的類型從integer轉(zhuǎn)換成float,那結(jié)果就也會有小數(shù)點了晌缘。具體操作見類型轉(zhuǎn)換齐莲。
Resereved Words(自用詞?)
上一筆記已經(jīng)提到磷箕,這一次老頭子又重新強(qiáng)調(diào)了下选酗,還是那些詞,給自己的變量取名的時候不要用就行了岳枷。再把那些詞貼在下面芒填,免得再去翻。
Conversion between types (類型轉(zhuǎn)換)
integer 轉(zhuǎn) float
x = float(20)
print x
20.0
string 轉(zhuǎn) integer
x = int("10")
print x
10
注意:不能把真正的文本轉(zhuǎn)化為數(shù)字空繁,比如殿衰,你不能讓python把love轉(zhuǎn)化為一個整數(shù),因為它也不知道愛到底值多少盛泡。╮(╯▽╰)╭闷祥。
還有兩種,從float轉(zhuǎn)integer傲诵,以及從integer轉(zhuǎn)string凯砍,都是一樣的方法。要看該值是什么類型拴竹,用type執(zhí)行就行悟衩。
x = type("10")
print x
<type"str">
str就是string的簡寫,你就知道了栓拜,哦座泳,“10”是個文本值。
回到上面運(yùn)算里的遺留問題菱属,如何將99/100得到輸出值為0.99钳榨?你們思考下,再看答案:
x = float (99)/100
print x
0.99
注意纽门,寫這個筆記的時候我用python測驗了下薛耻,我原本寫的是x = float(99/100), 這時輸出的結(jié)果會是0.0,而不是0.99赏陵, 因為python優(yōu)先計算括號里的值饼齿,而99/100的值是integer 0饲漾,然后再轉(zhuǎn)換成float,就只會是0.0缕溉, 而不是0.99. 感覺真是意外收獲考传,上課沒遇到這個問題,寫筆記時居然遇到了证鸥,增強(qiáng)記憶和復(fù)習(xí)僚楞,另外,學(xué)python等編程語言枉层,隨時不懂就去軟件里編一段驗證泉褐,真的是最快的自主學(xué)習(xí)方式。
**
Variables(變量)
上面一直舉例用的x鸟蜡,y就是變量膜赃。取名規(guī)則主要為以下幾點:
必須字母或者下劃線_開頭
必須是由字母、數(shù)字或者下劃線_組成
會區(qū)分大小寫
所以揉忘,一個好的名字就是name, name_1, _name跳座。不對的就是#name, 3name, var.12, ...
mnemonics(按意思取名)
仔細(xì)的朋友應(yīng)該注意到variables那個詞后面,老師加了個括弧寫的mnemonics泣矛,這個意思就是說變量的取名規(guī)則疲眷,最好接近你所擬定的變量意思本身來取名,并且不要用reserved words乳蓄。 如果一直用xyz咪橙,一旦變量變多,你就暈了虚倒。所以推薦取名方式是mnemonics美侦,比如時間hours,可以寫hrs魂奥,等等菠剩。
User Input(讓用戶來輸入)
這個挺好玩的,就是教了一個代碼叫做 raw_input()耻煤,加入這個具壮,你就能讓你的用戶填入他們自己的信息。舉例如下:
name = raw_input ( "What's your name?")
print "Hello", name
當(dāng)你運(yùn)行這段代碼時哈蝇,就會自動跳出對話框棺妓,問“What's your name?"你的名字是什么? 然后你輸入了自己的名字(阿卷) 后炮赦,它就會彈出 “Hello 阿卷"怜跑。
注意:用戶輸入的值python默認(rèn)為文本string,所以如果你想用這個值進(jìn)行計算吠勘,必須添加一段改變其類型的代碼性芬,使其從string變?yōu)閕nteger或者float峡眶。
Operator(運(yùn)算符號)
這個就是加減乘除那些,表格如下植锉。
代表指數(shù)狮暑。比如4^2,在python里就寫42暇赤。
%代表余數(shù)心例。所以5%2的輸出結(jié)果就是1宵凌,因為5除2得2余1鞋囊,結(jié)果是余數(shù)1。
Operator precedence(Python的運(yùn)算規(guī)則)
在python里面瞎惫,它的計算先后順序遵循的規(guī)則如下溜腐。
最高級--括弧()
然后是--指數(shù)
再然后是乘除和余數(shù)
最后是加減
老頭子的建議是瓜喇,盡量多加括弧挺益,這樣方便自己和他人。:)
此外乘寒,我在網(wǎng)上找了圖下更詳細(xì)的一覽表望众,比本課涵蓋的稍微多一點,可以作為了解補(bǔ)充學(xué)習(xí)伞辛。
Comment(標(biāo)記烂翰,評論)
如果你在你的代碼前加一個#,那么這行代碼或者文本自動變?yōu)樵u論蚤氏,就不會被運(yùn)行甘耿。
評論一般有以下兩個作用:
告訴別人或自己,以下這段代碼是干嘛用的竿滨,方便查詢佳恬、修改。
隱藏自己還不想運(yùn)行的代碼于游,或者打個草稿毁葱。
最后寫個課程中的作業(yè),大家可以自己想想怎么做贰剥,最好在python里玩玩倾剿,運(yùn)行一下哦。
Q:讓用戶輸入工作時間(hrs)和每小時的工資(rate)鸠澈,輸出總工錢(pay)柱告,要求小時必須是35截驮,工資必須是2.75。
當(dāng)然际度,以大家的數(shù)學(xué)技能葵袭,當(dāng)然知道總工錢應(yīng)該是35*2.75=96.25。所以正確的輸出就是96.25乖菱。
注意點:怎么讓用戶來輸入數(shù)據(jù)坡锡?怎么使結(jié)果輸出為有小數(shù)點的數(shù)字?
從頭到尾梳理一遍窒所,沒想到居然有這么多鹉勒,能看到這里,你也是很棒啊吵取。已經(jīng)完成第四周的課后測試禽额,還看了課后的采訪視頻,覺得里面有些觀點很棒皮官,想作為小彩蛋分享給大家脯倒。
這次采訪視頻采訪的是Piazza的創(chuàng)辦人Pooja Sankar,Piazza是一個幫助高校教授更好地與學(xué)生線上提問交流的平臺捺氢。創(chuàng)辦人Pooja Sankar來自印度藻丢,在斯坦福讀MBA時創(chuàng)辦的這個平臺,她創(chuàng)建這個平臺是因為她希望通過這個平臺摄乒,讓不管再害羞的學(xué)生都能和老師悠反、同學(xué)交流問題,并且得到快速的回復(fù)馍佑,而Piazza也做到了這一點斋否。
我對這個采訪視頻最感興趣的一點是,Pooja對于創(chuàng)業(yè)過程的分享挤茄。她說如叼,她傾向于慢而不是快,作為創(chuàng)業(yè)者穷劈,應(yīng)該優(yōu)先考慮的是你所創(chuàng)造的價值笼恰,而不是你所收獲的用戶那個數(shù)字。她分享道歇终,在她剛建立這個平臺不到一年的時候社证,便有雜志想報道她的經(jīng)歷,然而她考慮的是评凝,這會給她還不成熟的Piazza帶來巨大的用戶量追葡,卻沒法更好的服務(wù)那類人,她希望慢慢來,先將價值帶給最先使用的人群宜肉,這樣她可以對產(chǎn)品進(jìn)行調(diào)整匀钧,并讓時間來篩選目標(biāo)用戶。
這讓我想到現(xiàn)在很多創(chuàng)業(yè)不是這樣谬返,大筆的投資收獲用戶之斯,卻沒有認(rèn)真思考能給其用戶帶來什么核心價值,一味地低價競爭收攬客戶遣铝,卻忽略了產(chǎn)品本身的價值構(gòu)造佑刷,只顧著用用戶量這個“虛無”的數(shù)字來圈投資人的錢。實在是很危險的行為酿炸。