我试过这个,它似乎可以很好地处理整数,但无法处理字符串。我查了一下文件找不到。你知道吗
from sys import argv
a, b, c = input(argv)
print(a,b,c)
输出:
['C:\\Users\\mani\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py', '-f', 'C:\\Users\\mani\\AppData\\Roaming\\jupyter\\runtime\\kernel-24b5eda5-a584-417e-a9f5-1c58531db5ae.json']mn nn nj
-
ValueError Traceback (most recent call last)
<ipython-input-23-181e7bc5c5de> in <module>
1 from sys import argv
----> 2 a, b, c = input(argv)
3 print(a,b,c)
ValueError: too many values to unpack (expected 3)
不清楚你想用
sys.argv
做什么。它是由shell和Python解释器创建的字符串列表。通常它是读取的,就像任何列表一样,但也可以修改。你知道吗当用作
input
的参数时,它只是作为提示字符串。这样做有什么意义?我们从input
得到的是一个字符串(至少在Py3中,Py2是不同的)。你知道吗像这样拆箱是不可饶恕的。如果在RHS上给定了错误的项数,则会引发错误。你知道吗
所以我看到了三个问题:
sys.argv
以及如何使用它的问题input
do的论点是什么===
我想你对
input
做什么以及解包是如何工作的感到困惑:使用
input
相当于:字符串中的3个字符在3个变量中分开。如果提供的字符串较长(或较短),则与解包所需的3个变量不匹配。你知道吗
或者复制您键入“mn nn nj”的示例:
有点错误,您不需要使用
input
将argv
解压到变量中。你知道吗如果只需要将
argv
中的前3个元素解压成a
、b
和c
,就足够了。你知道吗查看python introduction并阅读有关切片的内容(神奇的
[:3]
)。你知道吗相关问题 更多 >
编程相关推荐