當前位置:
首頁 > 最新 > 練習 13-15 Learn Python 3 The Hard Way

練習 13-15 Learn Python 3 The Hard Way

昨天我們學習了轉義字元、如何從用戶那裡獲得輸入、以及如何給用戶提示信息。今天我們繼續學習練習 13-15 關於參數、解包、變數、如何提示用戶輸入,以及如何閱讀文件等一些內容。

練習 13 參數,解包,變數

在這個練習中我們會再學習一種 方法,通過這種方法可以把變數傳給一個腳本(也就是你的 文件)。

想想我們之前都是如何運行腳本文件的,比如要運行 ,就是輸入 (Windows 下輸入 )。這句命令中的 就叫做參數(argument)。我們現在要做的就是寫一個也接受參數的腳本。

先做完這個練習,然後我們再詳細分解:

(註:第二行注釋中的 WYSS 是「What You Should See」,即練習中的「你會看到」部分,在示例代碼這部分的後面)

ex13.py

第一行我們進行了 「import」(導入),這樣可以把 Python 功能庫中的特徵或者功能(features)添加到我們的腳本中。Python 不會一次把所有的功能都給我們用,為了不讓程序過於龐大,需要我們自己去導入需要的功能,這樣也可以為其它閱讀你代碼的程序員提供參考。

後面的 是 「argument variable」 (參數變數),這是一個在編程語言中非常標準和常見的名字。當你運行 Python 腳本的時候,這個變數(variable)保存了你傳給 Python 腳本的參數(argument),也就是說, 不是一個參數,而是一個保存參數的變數。

在第三行中,我們「解包」(unpacks)了 ,把它分成了四個變數:, , , 以及 。「解包」這個詞可能現在很難理解,但是它很恰當地定義了這個操作。你可以理解為, 這個參數變數在文件運行的時候接收了四個參數,而後又把這四個參數從左到右分配給了四個變數,最後像平常一樣把它們列印出來。

前面老肖一直把我們導入進來讓 python 做更多事情的東西叫做 features,但其實很少有人這麼叫它,它真正的名字應該是 modules (模塊)。所以之後的學習中,我們會說成「導入 模塊」。還有一些程序員把它們叫做「libraries」(庫),但是我們就用模塊這個名字吧。

你會看到

注意!我們之前一直都是直接運行 python 腳本,不用輸入命令行參數,但接下來的練習還需要加上參數,以後有 的地方都需要加上參數!

如果不明白怎麼操作,看下面輸出結果的第一行, 都是我們需要在命令行輸入的內容!其中 、 、、 代表了 4 個我們讓 保存的參數。

練習 13 結果

我們還可以把 、 、、 這 4 個參數換成任何想替換的內容,比如:

如果你沒有正確運行,就會收到這樣的報錯:

這種情況一般是你運行腳本的時候沒有在命令行放足夠的變數,在這個例子中只放了 、,所以就會出現錯誤說「需要三個以上的值來解包」,這就是告訴你,你沒有給到足夠多的參數。類似的報錯信息還包括

附加練習

試著給你的腳本三個以內的參數,看看你會收到什麼樣的報錯,你是否能解釋它。

第 6 題乍一看有點不明白是什麼意思,老肖就是想讓我們直接在命令行中使用來打開這個文本文件。具體如何操作,大家可以大膽嘗試,看看練習中是用什麼格式使用這個命令的,然後在命令行界面多試幾次。

這裡其實ai醬也遇到了一個小問題,雖然最後成功打開了 txt 文件(彈出文本文檔窗口),但是 Shell 上還是有報錯信息。我輸入的是:

錯誤信息是:

如果有遇到類似問題並解決了的小夥伴歡迎在評論區留言分享 solution~

常見問題

會返迴文件的內容嗎?不會。它其實是創建了一個叫做「文件對象」(file object)的東西。你可以把它想像成曾經的 DVD 播放器,你可以在裡面移動然後「讀取」它們。但是 DVD 播放器不是 DVD 本身,就像文件對象也不是文件本身一樣。

為什麼打開文件兩次不會收到報錯?

Python 不會限制你只能打開一次文件,事實上有時候確實需要打開多次。

是什麼意思?現在你只需要明白 是一個包(package),這個短語是說從那個包里獲取 功能(feature)。你會在後面深入學習這塊內容。

我把腳本文件名這樣放進去:, 但是無法運行。你不能這樣做。嚴格按照我的代碼來,然後用同樣的方法在命令行運行它。你不用把文件名放進去,你得讓 python 自己放。

好了,今天就學這麼多,大家應該感覺到了一些難度,不過只要邊練習邊思考了,很多問題自然就想明白了,不明白的地方也歡迎大家在評論區、公眾號後台留言,或者在群里跟大家交流~(由於公布群二維碼以後吸引了一些殭屍號和不可描述的號,所以群二維碼就不放了,大家還是先加ai醬微信再入群吧~)

好好學習|天天進步

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python 的精彩文章:

高效Python爬蟲技巧

TAG:Python |