str.isnumeric() 有问题

trouble with str.isnumeric()

我正在尝试使用 isnumeric 字符串方法来测试命令行参数是否为数字。据我了解,如果所有字符都是数字,则 returns 为真,否则为假,但是当 运行 时,无论它是否为数字,我似乎都为真。

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()

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

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

此外,使用 argparse built-in package would make the command-line parameter parsing and validation a lot cleaner and readable (tutorial link).