Python 在命令行中使用sys和argv时出现问题 从系统导入argv def multi(): 如果len(argv)

Python 在命令行中使用sys和argv时出现问题 从系统导入argv def multi(): 如果len(argv),python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,我在终端中调用了:“python3”filename.py“9” 所以它应该是:“python3 testargv.py9” 而且它在终端里什么也不做 我以为9是参数1的第二个参数,还有一个“acehorrst”,它有9个字母长,不起作用,我对所有单词都有同样的问题,不管我放的是什么数字。你忘了将argv转换为整数。线路应为: 如果len(value)==int(argv[1]): 您忘记将argv强制转换为整数。线路应为: 如果len(value)==int(argv[1]): 我认为您要寻找

我在终端中调用了:“python3”filename.py“9”

所以它应该是:“python3 testargv.py9” 而且它在终端里什么也不做


我以为9是参数1的第二个参数,还有一个“acehorrst”,它有9个字母长,不起作用,我对所有单词都有同样的问题,不管我放的是什么数字。

你忘了将argv转换为整数。线路应为:

如果len(value)==int(argv[1]):


您忘记将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) == argv[1]:
                print(value)

values = ["acehorrst", "hellorye", "badbadg", "skrskr", "hahahah"]

multii()
从系统导入argv
def multi():
如果len(argv)<2:
通过
其他:
对于值中的值:
如果len(value)==int(argv[1]):
打印(值)
值=[“acehorrst”、“hellorye”、“badbag”、“skrskr”、“hahahah”]
multi()

我认为您需要的是将值的长度与参数的整数值进行比较,默认情况下,参数被视为字符串。 因此,执行
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) == argv[1]:
                print(value)

values = ["acehorrst", "hellorye", "badbadg", "skrskr", "hahahah"]

multii()
从系统导入argv
def multi():
如果len(argv)<2:
通过
其他:
对于值中的值:
如果len(value)==int(argv[1]):
打印(值)
值=[“acehorrst”、“hellorye”、“badbag”、“skrskr”、“hahahah”]
multi()
从打印(argv)开始查看您正在处理的内容。从打印(argv)开始查看您正在处理的内容。