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将是condiered参数1,并且存在9个字母长的“acehorrst”并且它不起作用,并且无论我放的是什么数字,我对所有单词都有相同的问题。
答案 0 :(得分:0)
您忘了将argv转换为整数。该行应该是:
如果len(value)== int(argv [1]):
答案 1 :(得分:0)
我认为你要找的是比较值的长度和参数的整数值,默认情况下,参数被视为字符串。
因此,执行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()