遍历sys.argv以检测element是否为数字

时间:2019-04-29 18:50:53

标签: python command-line-arguments

基本上,我想检查每个命令行参数(sys.argv()),以确定元素是否为数字。

我在想类似...

    count = 1

if sys.argv[count].isdigit():
  num = num + 1
  count+=1
  print("YES it is a numeric")
else:
  print("No this is not a digit")

我认为for循环将有助于迭代每个元素,但是使用sys.argv会遇到问题。

所以我希望能够在命令提示符下键入filename.py arg1 arg2 arg3 arg4 arg5,如果其中三个元素是数字,请将它们添加到另一个变量中并找到最大的数字(max)

例如:我在cmd提示符下键入,arguments.py 1是2 3 结果:3是最大的数字。因为我已经在使用“ sys.argv”,所以我不明白为什么我需要argvparse或getopt,您能解释一下吗? 因为我是命令行参数的新手,所以任何想法都会有所帮助。

import sys

def validate():
    if len(sys.argv) > 6:
        print("No more than 5 arguments please")
        exit()

def printArgs():

    for arg in sys.argv[1:]:
        print (arg)    

def main():

    validate()
    printArgs()
    num = 0
    count = 1

    if sys.argv[count].isdigit():
      num = num + 1
      count+=1
      print("YES it is a numeric")
    else:
      print("No this is not a digit")

    print("This is the name of the script ", sys.argv[0])

    numArgs = len(sys.argv)
    print("Number of Arg: ", numArgs)
    print("**** ", str(sys.argv[1:]))

main()

感谢#BoarGules的评论,它真的很有帮助。 基本上,除了添加更多验证和清理代码外,我已经完成了。我最后的工作是:

import sys

def validate():
    if len(sys.argv) > 6:
        print("No more than 5 arguments please")
        exit()

def printArgs():
    print("\nthe arguments are:\n")

    for arg in sys.argv[1:]:
        print (arg)

def checkdigits():
    biggest = []
    for arg in sys.argv[1:]:
        if arg.isdigit():
            biggest.append(arg)
    print("\nthe biggest number is: ",max(biggest))

def main():

    validate()
    printArgs()
    checkdigits()

main()

0 个答案:

没有答案