標籤:

Python出現ValueError: need more than 1 value to unpack 的原因是什麼?

from sys import argv
script,first,second,third=argv
print "the script is called:",script

結果是

File "D:Python27文件13.參數,解包,變數.py", line 3, in & script,first,second,third=argv
ValueError: need more than 1 value to unpack


哥們你參考的資料是網上的:笨辦法學 Python 嗎?裡面給你的這個例子運行是不能直接出結果的。你只要在輸入命令的時候用:python ex13.py 1 2 3 類似這樣的命令格式就可以了。在運行python的時候就直接把參數都輸入了,就不會報錯了。

看到題目的時候比較晚,可能你用不到,但是會有人再次百度的時候搜到這裡的,別問我為什麼會知道這麼清楚。


我用PyCharm得不到結果(或者說我可能也不確定是在哪兒加),但是用PowerShell,直接輸入python 1st.py 1st 2nd 3rd 會有正確的結果出來。


我最近也在學python,下載列印了learn python the hard way和A Byte of Python作為入門教程學習。在學到the hard way習題13時也遇到這個問題。

我用的是pycharm編輯器,錯誤顯示 need more than 1 value to unpack需要一個以上的參數來解包。

細心的同學會發現其實作者需要我們用命令方式提供3個參數運行而不是在編輯器中直接運行。

於是win+R,輸入cmd如下:

輸入python ex13.py,我這個還是有問題~說找不到該文件

於是我跳轉到該目錄下

成功了~


執行命令是假如參數,代碼中argv共有四個參數,其中第一個是命令(***.py)本身,因此,你還要加入三個參數

python ***.py 參數1 參數2 參數3

這樣就可以了


這四個個變數不能同時解包(unpack)

需要分別解包

script = argv

frist = argv

thrid = argv

second =argv



在PyCharm 5可以直接用裡面的終端嘛。


因為沒有傳入參數,既然用的是pycharm可以在run -edit configurations-script parameters下傳入參數。


遇到了同樣的問題,當我把書翻到第二頁的時候我才知道 運行的時候要給參數

python ex13.py first 2nd 3rd


需要在cmd上輸出結果

如下圖:


牛逼啊,老鐵們


哇,這個問題折磨了我一周!今天終於弄明白了!(我就是看知乎上的回答搞懂的)

開始了!前面的習題一個個敲過來,基本沒有什麼大問題,到了習題13,還是按照之前的步驟來,創建一個Python file【我用的也是pycharm編輯器,版本是2017.2.3 】

(我習慣用xiti標註,當然ex13最好,別人看的時候也會容易理解一些)

然後敲入Code

點擊運行

結果是這樣的,重新輸入了好幾遍後,難受香菇

然後開始看書上的提示

(圖片的效果。。。懶的改了)

重點來了!!!用下面的方法運行你的程序(注意必須傳遞3個命令行參數)

命令行參數是什麼怪獸啊?

於是找到了Python書上的光碟,作者說如果這時遇到問題就要去附錄學習命令行快速入門

於是昨天晚上直接從習題1刷到習題15

基本上對命令行有一個大概的了解(理解創建目錄,cd.. ,之類)

然後打開powershell(不知道怎麼打開?,百度啊)

打開後是這樣的

開始進入重點,在學習命令行入門後,找到存放習題13的目錄

我的是放在這裡directory--C:UsersadminPycharmProjectsuntitled2

然後在powershell敲命令

(如何有字母敲錯的話就是這樣)

????

No such file or directory 是什麼鬼怪啊???

呵呵,原來是腦殘啊,自己創建Python 但是在命令行輸入的卻是ex13.py

修改錯誤之後,變數按照書上的來一遍

自定義變數看下

ok!習題13打怪獸成功


剛好看到「笨辦法學python(第四版)」練習13這個問題

解決辦法:

1、把python添加到系統環境變數里

步驟:

2、cmd里進入你代碼文件所在目錄,比如我是放在C:UsersAdministratorcode這裡

那麼


最近在學python,剛看到這裡

後面加入3個參數就OK了


我也遇到該問題了···怎麼辦····


我再去看看書


把書翻到第二頁即可,作者在第二頁寫的很詳細


視頻教程說的很清楚啊


百度出來就是這個答案,好棒哦~感謝!


推薦閱讀:

有哪些應用場景適合用python的gevent來完成?
Python為什麼代碼縮進不同,輸出結果不同?
為什麼 Python 不是 lexical scoping?
Python 在 for 或者 if 語句後的冒號是冗餘嗎?
Python 會不會替代 MATLAB?

TAG:Python |