learn python the hard way 習題13運行問題..?

learn python the hard way 習題13

為什麼用pycharm會出現這種情況?


參數傳的少了

在命令行里應該這樣調用

"python test.py arg1 arg2 arg3"

在pycharm下,選擇Run-&>Edit Configurations 在「Script parameters"里填入其他參數如」arg1 arg2 arg3",然後點運行。


argv 是運行參數 直接在 pycharm 運行的時候默認是不會帶參數的 也就是 argv 沒有被正確賦值, 因此提示無法 unpack

因此你需要在命令行下運行

python test.py wen zhao lun

運行結果就是

test.py
wen
zhao
lun

PS: argv 里默認第一個元素是文件名


這段代碼的目的是要你熟悉 sys裡面argv的意義,這個的argv表示運行參數,是一個List包括python文件被調用時候自身的文件名全名以及後面的所有參數。因此,為了讓這段代碼能夠正常使用,需要在調用這個python文件的時候傳入相應的參數數量。除開文件本身,還需要3個參數,由於PyCharm在運行python文件的時候並沒有默認的自帶參數,題主需要在PyCharm中自行配置或者像其他答主所說的在命令行中運行這個腳本。

script, first, second, third = argv

PyCharm的配置方法在菜單的 Run -&> Edit Configurations中配置如下

然後就可以看到正確的運行結果了

最後補充一句,個人覺得新學編程還是用各類文本編輯器 + 命令行比較好,IDE太智能了,很多細節都注意不到。


你先得知道這段代碼是幹什麼用的,我估計你不知道。


執行這個腳本需要你提供命令行參數,就跟前面很多答主說的一樣。pycharm內部可以打開一個終端,你可以直接在這個終端裡面執行這個腳本。


我這個從沒看過一眼 PY 的人,基本看眼代碼我就明白什麼意思了,,,

你卻不知道,,

你這書白看了,


使用命令行,傳參


是初始化的參數,就是一般命令行後面附帶的-version之類的,它的描述是這樣子的。

哎呀跟大神們在同一層樓里好激動φ(゜▽゜*)?


學妹,你很萌。


你為什麼不按作者的要求Hard way 的學習?他讓你用ide 了嗎?作者讓你完全重複他的步驟,你為什麼不聽話?


需要參數


其實這段代碼是接收命令行參數並顯示出來 類似c#裡面的string[] args作用就是比如你調用vim顯示一個文件 命令是vim "文件路徑" vim就可以通過這個參數接收到文件路徑打開它 你調用的時候沒加參數 就出錯了


這段代碼主要就在argv這個東西上,看代碼,可以猜測,argc是個函數,然後去google一下argv這個東西就好,看看怎麼用的


入門請用PyCharm Educational Edition

PyCharm Educational Edition


推薦閱讀:

為什麼人們會崇拜一個編程語言?
程序猿怎樣才能修鍊到負責一個真正意義上的項目?
學好編程可以幹什麼?
C 語言中 int main() 和 void main() 有何區別?
能否寫出一個程序,按照需求,自動生成實現的代碼?

TAG:Python | 編程 | 信息技術IT |