笨辦法學 Python(練習題)

笨辦法學 Python (Learn Python The Hard Way)中文版

習題 0: 準備工作

總有一天你會聽到有程序員建議你使用 Mac OSX 或者 Linux。如果他喜歡字體美觀,他會告訴你讓你弄臺 Mac OSX 計算機,如果他們喜歡操作控制而且留了一部大胡子,他會讓你安裝 Linux。這里再次向你說明,只要是一臺手上能用的電腦就可以了。你需要的只有三樣東西: gedit、一個命令行終端、還有python。


習題 1: 第一個程序

學會看調試錯誤

這些內容你應該學會看懂的,這是很重要的一點,因為你以后還會犯類似的錯誤。就是我現在也會犯這樣的錯誤。讓我們一行一行來看。

python

  • 會打印出錯誤的行
  • 指示錯誤的地方
  • 指示錯誤的類型

習題 2: 注釋和井號

程序里的注釋是很重要的。它們可以用自然語言告訴你某段代碼的功能是什么。
在你想要臨時移除一段代碼時,你還可以用注解的方式將這段代碼臨時禁用.


習題 3: 數字和數學計算

每一種編程語言都包含處理數字和進行數學計算的方法。不必擔心,程序員經常撒謊說他們是多么牛的數學天才,其實他們根本不是。

如果他們真是數學天才,他們早就去從事數學相關的行業了,而不是寫寫廣告程序和社交網絡游戲,從人們身上偷賺點小錢而已。


習題 4: 變量(variable)和命名

在編程中,變量只不過是用來指代某個東西的名字。
程序員通過使用變量名可以讓他們的程序讀起來更像英語。
而且因為程序員的記性都不怎么地.
變量名可以讓他們更容易記住程序的內容。如果他們沒有在寫程序時使用好的變量名,在下一次讀到原來寫的代碼時他們會大為頭疼的


習題 5: 更多的變量和打印

  • 格式化字符串(format string)
  • 試著使用更多的格式化字符。例如 %r 就是是非常有用的一個,它的含義是“不管什么都打印出來”。

習題 6: 字符串(string)和文本

字符串可以包含格式化字符 %s,這個你之前也見過的。你只要將格式化的變量放到字符串中,再緊跟著一個百分號 % (percent),再緊跟著變量名即可。

唯一要注意的地方,是如果你想要在字符串中通過格式化字符放入多個變量的時候,你需要將變量放到 ( ) 圓括號(parenthesis)中,而且變量之間用 ,逗號(comma)隔開。就像你逛商店說“我要買牛奶、面包、雞蛋、八寶粥”一樣,只不過程序員說的是”(milk, eggs, bread, soup)”。


習題 7: 更多打印

  • 從現在開始,把你的錯誤記錄下來,寫在一張紙上。
  • 在開始下一節習題時,閱讀一遍你記錄下來的錯誤,并且盡量避免在下個練習中再犯同樣的錯誤。
  • 記住,每個人都會犯錯誤。程序員和魔術師一樣,他們希望大家認為他們從不犯錯,不過這只是表象而已,他們每時每刻都在犯錯。

習題 8: 打印,打印

習題 9: 打印,打印,打印


習題 10: 那是什么

  • 使用反斜杠 \ (back-slash) 可以將難打印出來的字符放到字符串。針對不同的符號有很多這樣的所謂“轉義序列(escape sequences)”.
  • 但有一個特殊的轉義序列,就是 **雙反斜杠(double back-slash) \\ **。這兩個字符組合會打印出一個反斜杠來.
tabby_cat = "\tI'm tabbed in."      #\t制表符
persian_cat = "I'm split\non a line."    #\n換行符
backslash_cat = "I'm \\ a \\ cat."     #2個\\顯示1個\

fat_cat = """
I'll do a list:
\t* Cat food
\t* Fishies
\t* Catnip\n\t* Grass
"""

print tabby_cat
print persian_cat
print backslash_cat
print fat_cat

輸出:

    I'm tabbed in.
I'm split
on a line.
I'm \ a \ cat.

I'll do a list:
* Cat food
* Fishies
* Catnip
* Grass

習題 11: 提問

一般軟件做的事情主要就是下面幾條:

  • 接受人的輸入。
  • 改變輸入。
  • 打印出改變了的輸入。

注意到我在每行 print 后面加了個逗號(comma) , 了吧?這樣的話 print 就不會輸出新行符而結束這一行跑到下一行去了。


習題 12: 提示別人


習題 13: 參數、解包、變量

  • 在第 1 行我們有一個“import”語句. 這是你將 python 的功能引入你的腳本的方法.
  • Python 不會一下子將它所有的功能給你,而是讓你需要什么就調用什么。
  • 這樣可以讓你的程序保持精簡,而后面的程序員看到你的代碼的時候,這些“import”可以作為提示,讓他們明白你的代碼用到了哪些功能。
from sys import argv

script, first, second, third  = argv
print ("The script is called:") , script
print ("Your first variable is:") , first
print ("Your second variable is:") , second
print ("Your third variable is:") , third
奇怪的結果

在pycharm里面運行命令行:
Run/Debug Configurations->Configurations->Script Parames

輸出:

The script is called:       
F:/2???/python/nesterjerrychan/chapter6/learnhardway/test.py
Your first variable is: first
Your second variable is: second
Your third variable is: third

習題 14: 提示和傳遞


習題 15: 讀取文件

我使用了“命令”這個詞,不過實際上它們的名字是“函數(function)”和“方法(method)。上網搜索一下這兩者的意義和區別。看不明白也沒關系,迷失在別的程序員的知識海洋里是很正常的一件事情。


習題 16: 讀寫文件

  • close – 關閉文件。跟你編輯器的 文件->保存.. 一個意思。
  • read – 讀取文件內容。你可以把結果賦給一個變量。
  • readline – 讀取文本文件中的一行。
  • truncate – 清空文件,請小心使用該命令。
  • write(stuff) – 將stuff寫入文件。

習題 17: 更多文件操作

文本1--->復制文本--->文本2
為什么每次需要output.close()?

1.把文件想象成信件就可以了,打開信封才能取出信紙,把信紙放入信封還要封好,不然隨時可能掉出來.

2.如果沒有close(),寫入的內容可能會存在緩沖區中,并沒有真正的寫入文件里。

3.close()是為了釋放資源。
如果不close(),那就要等到垃圾回收時,自動釋放資源。垃圾回收的時機是不確定的,也無法控制的。
如果程序是一個命令,很快就執行完了,那么可能影響不大(注意:并不是說就保證沒問題)。
但如果程序是一個服務,或是需要很長時間才能執行完,或者很大并發執行,就可能導致資源被耗盡,也有可能導致死鎖。


習題 18: 命名、變量、代碼、函數

函數可以做三樣事情:

  • 它們給代碼片段命名,就跟“變量”給字符串和數字命名一樣。
  • 它們可以接受參數,就跟你的腳本接受 argv一樣。
  • 通過使用 #1 和 #2,它們可以讓你創建“微型腳本”或者“小命令”。

創建函數過程:

  • 告訴 Python 創建一個函數,def ,也就是“定義(define)”的意思。
  • 緊接著 def 的是函數的名稱。但最好函數的名稱能夠體現出函數的功能來。

習題 19: 函數和變量

函數里邊的變量和腳本里邊的變量之間是沒有連接的


習題 20: 函數和文件


習題 21: 函數可以返回東西


習題 22: 到現在你學到了哪些東西?

做這節練習沒有失敗,只有嘗試,請牢記這一點。


習題 23: 讀代碼


習題 24: 更多練習


老程序員的建議

在這么久的旅程下來我的體會是:編程語言這東西并不重要,重要的是你用這些語言做的事情。事實上我一直知道這一點,不過以前我會周期性地被各種編程語言分神而忘記了這一點。現在我是永遠不會忘記這一點了,你也不應該忘記這一點。

你學到和用到的編程語言并不重要。不要被圍繞某一種語言的宗教把你扯進去,這只會讓你忘掉了語言的真正目的,也就是作為你的工具來實現有趣的事情。

編程作為一項智力活動,是唯一一種能讓你創建交互式藝術的藝術形式。你可以創建項目讓別人使用,而且你可以間接地和使用者溝通。沒有其他的藝術形式能做到如此程度的交互性。電影領著觀眾走向一個方向,繪畫是不會動的。而代碼卻是雙向互動的。

技術公司里邊會編程的人多到一毛錢一打,根本得不到什么尊敬。而在生物學、醫藥學、政府部門、社會學、物理學、數學等行業領域從事編程的人就能得到足夠的尊敬,而且你可以使用這項技能在這些領域做出令人驚異的成就。

You can code. They cannot. That is pretty damn cool.

Advice from an Old Programmer

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,156評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,401評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,069評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,873評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,635評論 6 408
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,128評論 1 323
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,203評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,365評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,881評論 1 334
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,733評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,935評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,475評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,172評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,582評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,821評論 1 282
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,595評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,908評論 2 372

推薦閱讀更多精彩內容

  • 習題0:準備工作 總有一天你會聽到有程序員建議你使用 Mac OSX 或者 Linux。如果他喜歡字體美觀,他會告...
    KennyP0618閱讀 2,249評論 0 1
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,623評論 25 708
  • http://python.jobbole.com/85231/ 關于專業技能寫完項目接著寫寫一名3年工作經驗的J...
    燕京博士閱讀 7,602評論 1 118
  • 這些日子北京各大公園的相親角成為了熱門新聞,網絡中報紙上電視里都在吐槽相親角的種種不是,幾乎一無是處。真奇怪幾乎沒...
    萬象隨心閱讀 424評論 0 1
  • 我是農村人,從小是個女漢子。奔跑在鄉野田坎,好幾次差點掉水田里吃一嘴泥、掉河溝里被淹死。還記得小時候的那種塑料涼鞋...
    小小一二閱讀 511評論 0 0