跟老齊學Python之一個免費的實驗室_python

來源:互聯網
上載者:User

在學生時代,就羨慕實驗室,老師在裡面可以鼓搗各種有意思的東西。上大學的時候,終於有機會在實驗室做大量實驗了,因為我是物理系,並且,遇到了一位非常令我尊敬的老師——高老師,讓我在他的實驗室裡面,把所有已經破舊損壞的實驗儀器修理裝配好,並且按照要求做好實驗範例。經過一番折騰,才明白,要做好實驗,不僅僅花費精力,還有不菲的裝置成本呢。後來工作的時候,更感覺到實驗裝置費用之高昂,因此做實驗的時候總要小心翼翼。

再後來,終於發現原來電腦是一個最好的實驗室。在這裡做實驗成本真的很低呀。

扯的遠了吧。不遠,現在就扯回來。學習Python,也要做實驗,也就是嘗試性地看看某個命令到底什麼含義。通過實驗,研究清楚了,才能在編程實踐中使用。

怎麼做Python實驗呢?

走進Python實驗室

在《整合式開發環境(IDE)》一章中,我們介紹了Python的IDE時,給大家推薦了IDLE,進入到IDLE中,看到>>>符號,可以在後面輸入一行指令。其實,這就是一個非常好的實驗室。

另外一個實驗室就是UNIX作業系統(包含各種Linux和Mac OSx)的shell,在開啟shell之後,輸入python,出現如下圖所示:

如果看官是用windows的,也能夠通過cmd來獲得上圖類似的介面,依然是輸入python,之後得到介面。

在上述任何一個環境中,都可以輸入指令,敲斷行符號鍵運行並輸出結果。

在這裡你可以隨心所欲實驗。

互動模式下進行實驗

前面的各講中,其實都使用了互動模式。本著循序漸進、迴圈上升的原則,本講應該對互動模式進行一番深入和系統化了。

通過變數直接顯示其內容

從例子開始:

>>> a="http://qiwsir.github.io">>> a'http://qiwsir.github.io'>>> print ahttp://qiwsir.github.io

當給一個變數a賦值於一個字串之後,輸入變數名稱,就能夠列印出字串,和print a具有同樣的效果。這是互動模式下的一個特點,如果在檔案模式中,則不能,只有通過print才能列印變數內容。

縮排

>>> if bool(a):...   print "I like python"... I like python

對於if語句,在上一講《從if開始語句的征程》中,已經注意到,if下面的執行語句要縮排四個空格。在有的python教材中,說在互動模式下不需要縮排,可能是針對python3或者其它版本,我使用的是python2.7,的確需要縮排。上面的例子就看出來了。

看官在自己的機器上測試一下,是不是需要縮排?

報錯

在一個廣告中看到過這樣一句話:程式員的格言,“不求最好,只求報錯”。報錯,對編程不是壞事。如何對待報錯呢?

一定要認真閱讀所提示的錯誤資訊。

還是上面那個例子,我如果這樣寫:

>>> if bool(a):... print "I like python" File "<stdin>", line 2   print "I like python"       ^IndentationError: expected an indented block

從錯誤資訊中,我們可以知道,第二行錯了。錯在什麼地方呢?python非常人性化就在這裡,告訴你錯誤在什麼地方:

IndentationError: expected an indented block

意思就是說需要一個縮排塊。也就是我沒有對第二行進行縮排,需要縮排。

另外,順便還要提醒,>>>表示後面可以輸入指令,...表示當前指令沒有結束。要結束並執行,需要敲擊兩次斷行符號鍵。

探索

如果看官對某個指令不瞭解,或者想試試某種操作是否可行,可以在互動模式下進行探索,這種探索的損失成本非常小,充其量就是報錯。而且從報錯資訊中,我們還能得到更多有價值的內容。

例如,在《眼花繚亂的運算子》中,提到了布爾運算,其實,在變數的類型中,除了前面提到的整數型、字串型,布爾型也是一種,那麼布爾型的變數有什麼特點呢?下面就探索一下:

>>> a'http://qiwsir.github.io'>>> bool(a)   #布爾型,用bool()表示,就類似int(),str(),是一個內建函數True>>> b="">>> bool(b)False>>> bool(4>3)True>>> bool(4<3)False>>> m=bool(b)>>> mFalse>>> type(m)<type 'bool'>>>> 

從上面的實驗可以看出,如果對象是空,返回False,如果不是,則返回True;如果對象是False,返回False。上面探索,還可以擴充到其它情況。看官能不能通過探索,總結出bool()的特點呢?

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.