01/10/2018, 00:22
Lỗi ValueError: not enough values to unpack (expected 4, got 3)
Chào các bạn,
Mình là dân ngoại đạo, mới tập lập trình Python (mình dùng bản 3.5) , đang học qua quyển Learn Python The Hard Way, tới bài tập số 13 thì mình gặp lỗi và không làm tiếp được.
Câu lệnh đây:
from sys import argv
script , first, second, third = argv
print (" the name of the script is:", script)
print ("the first variable is:", first)
print ("the second variable is:", second)
print ("the third variable is:", third)
Kết quả trả về là:
from sys import argv
script , first, second, third = argv
print (" the name of the script is:", script)
print ("the first variable is:", first)
print ("the second variable is:", second)
print ("the third variable is:", third)
Traceback (most recent call last):
File "<ipython-input-1-d64392378067>", line 3, in <module>
script , first, second, third = argv
ValueError: not enough values to unpack (expected 4, got 3)
Mình đã cố gắng đọc trên mạng, các trang tiếng Anh nhưng vẫn không thấy cách giải quyết.
Thật sự mình đang khá là lo, mong được sự gúp đỡ của các tiền bối đi trước.
Cảm ơn
Bài liên quan
Đây là do thiếu tham số, bạn cho mình xem tham số bạn nhập vào đi
sys.argv
là 1 list “động” chứa parameters bạn đưa vào chương trình với tham số đầu tiên luôn là đường dẫn của file thực thi. Để test file này thì bạn chỉ cần nhập chính xác 3 parameters là xong. Lý do phải là 3 vì bạn đang muốn unpack 1 list cho ra 4 biến nhưng đã có 1 biến cố định thì 4 - 1 = 3, đúng không nào?Ví dụ file của bạn tên là test.py, chạy:
python test.py tham_so_1 "tham so 2" 3
và vấn đề đã xong. Bạn có thể đổitham_so_1
,"tham so 2"
,3
tùy thích :3Mình đã khắc phục được rồi nha.
Lỗi của mình là do mình chạy file trong Anaconda, nên mình không nhập thêm được gì.
Sau khi chạy trên nền bằng PowerShell, mình nhập thêm python .\phanmem2.py first 2nd 3rd thì đã ra được kết quả rồi.
Cảm ơn các bạn nhiều nha
Ai giải thích giúp mình với ạ?