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 = argvfrist = 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 |