from sys import argv
def multii():
if len(argv) < 2:
pass
else:
for value in values:
if len(value) == argv[1]:
print(value)
values = ["acehorrst", "hellorye", "badbadg", "skrskr", "hahahah"]
multii()
我在终端中调用:" python3" filename.py" 9"
所以是:" python3 testargv.py 9"它在终端中无能为力
我以为9将是condier的参数1,并且有9个字母的" Acehorrst",它不起作用,无论我放了什么号码,我都有相同的问题。
您忘了将ARGV投放给整数。该行应该是:
如果len(value)== int(argv [1]):
我认为您要寻找的是将值的长度与参数的整数值进行比较,默认情况下,参数被视为字符串。因此,您执行python3 testargv.py 9
将使argv
看起来如下 ['testargv.py', '9']
。
在您的代码中,您将长度与字符串进行比较,将argv[1]
转换为int(argv[1])
,并且可以正常工作。
from sys import argv
def multii():
if len(argv) < 2:
pass
else:
for value in values:
if len(value) == int(argv[1]):
print(value)
values = ["acehorrst", "hellorye", "badbadg", "skrskr", "hahahah"]
multii()