python有没有类似shell中 $#的变量来表示传进来多少个参数。

比如我要根据sys.argv[1]和sys.argv[2]是否有值来去处理不同情况,但是如果用户不输入参数,我调用sys.argv[1]就是报错,所以希望知道有几个参数传... 比如我要根据sys.argv[1]和sys.argv[2]是否有值来去处理不同情况,但是如果用户不输入参数,我调用sys.argv[1]就是报错,所以希望知道有几个参数传递进来。类似shell的$#功能一样。或者这个问题该如何解决呢? 展开
 我来答
蒲公英随风飘舞哈
2012-04-06 · TA获得超过1431个赞
知道小有建树答主
回答量:324
采纳率:0%
帮助的人:526万
展开全部
用 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:
做些错误处理
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式