python有没有类似shell中 $#的变量来表示传进来多少个参数。
比如我要根据sys.argv[1]和sys.argv[2]是否有值来去处理不同情况,但是如果用户不输入参数,我调用sys.argv[1]就是报错,所以希望知道有几个参数传...
比如我要根据sys.argv[1]和sys.argv[2]是否有值来去处理不同情况,但是如果用户不输入参数,我调用sys.argv[1]就是报错,所以希望知道有几个参数传递进来。类似shell的$#功能一样。或者这个问题该如何解决呢?
展开
1个回答
展开全部
用 len(sys.argv)-1 能得到用户输入的参数的个数,因为sys.argv的第一个元素总脚本名,所以要-1
追问
谢谢 我知道了一个方法得出输入有几个参数了 但是有碰到一个新问题你能帮我解答下吗? 比如我讲time_s = sys.arg[1] 赋值,打印出来也是我的输入2(假如我输入的是2) ,但是当我用time_s去执行运算的时候 比如time.time() - time_s*60*60*24的 时候就提示我错误 提示 -:float and sty 不支持
追答
输入的所有参数都是当作字符串处理的,所以2是一个字符串,time_s也就是一个字符串,字符串去做乘法运算就会出错,你可以time_s = int(sys.argv[1])
保险一点你还应该判断下参数输入的是否正确,是不是个数字
if sys.argv[1].isdigit():
time_s = int(sys.argv[1])
else:
做些错误处理
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |