基本上,我想检查每个命令行参数(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()