【发布时间】:2015-08-18 18:47:25
【问题描述】:
这是我的代码
from sys import argv
a,b = argv
def gcd(a,b):
while a:
a,b = b%a, a
print b
现在如果我用这个从命令行运行它
python euclidian_algorithm.py 40, 48
我收到此错误
Traceback (most recent call last):
File "euclidian_algorithm.py", line 3, in <module>
a,b = argv
ValueError: too many values to unpack
但是,如果我随后删除两个输入之间的空格,就像这样
python euclidian_algorithm.py 40,48
然后我根本没有输出。
首先,当我只输入两个参数时,我不明白为什么要解压缩的值太多。 其次,为什么我在第二种情况下没有输出?
【问题讨论】:
-
argv包含字符串,而不是数字。 -
另外,它包含脚本名称作为第一个参数(所以在第二种情况下,
a == 'euclidian_algorithm.py'和b == '40,48')。此外,您从未真正调用过您的函数。 -
你的论点之间的逗号也会把事情搞砸。另外,
argv包含程序名称作为其第一个参数,因此您的argv在第一种情况下看起来像['euclidian_algorithm.py' '40,', 48']。 -
如果您在程序中乱扔
print语句,您可能很容易发现自己。
标签: python python-2.7 argv