-3

我试图通过使用非数字字符串方法来测试命令行参数是否为数字。据我了解,如果所有字符都是数字,则返回 True,否则返回 false,但是在运行它时,无论它是否为数字,我似乎都得到 True。

def get_data():
    sys.argv[1].isnumeric()
    if True:
        print('argument is number')
    else:
        print("Usage: python3 WnnnnnnnnAssg3.py number file1 file2 . . . filen")
        quit()

    if len(sys.argv) < 3 :
        print("Usage: python3 WnnnnnnnnAssg3.py number file1 file2 . . . filen")
        quit()
get_data()
4

1 回答 1

1

您需要将结果分配给isnumeric()变量并检查它的值:

value = sys.argv[1].isnumeric()
if value:
    print('argument is number')
else:
    print("Usage: python3 WnnnnnnnnAssg3.py number file1 file2 . . . filen")
    quit()

此外,使用argparse内置包将使命令行参数解析和验证更加清晰易读(教程链接)。

于 2015-03-16T01:49:18.410 回答