import sys
a =int( sys.argv[1])
print "\nArguments -->",a , sys.argv[2]
print "\nNo of Argu ", len(sys.argv), "\n"
print str(sys.argv)
Run Code Online (Sandbox Code Playgroud)
命令窗口输出我给出的是:
python testfunction.py a sf df sf
Run Code Online (Sandbox Code Playgroud)
Whenevr第一个参数被视为'a',它显示错误 - >
invalid literal for int() with base 10: 'a'
Run Code Online (Sandbox Code Playgroud)
新手到python.如果没有尝试,PLease提供了如何处理它的解决方案
也
当我不给蚂蚁论证时,我也应该处理
命令窗口outout我给:
python testfunction.py
错误:IndexError:列表索引超出范围
我不太确定你是否知道自己在做什么,但让我为你澄清一下:
a =int( sys.argv[1])
Run Code Online (Sandbox Code Playgroud)
你希望你的第一个参数是整数类型.显然不是这种情况,因为您使用以下参数调用脚本:
a sf df sf
Run Code Online (Sandbox Code Playgroud)
Python尝试将您的第一个参数转换为整数.哪个失败了.
一个简单的简单修复就是确保第一个参数是一个整数:
if sys.argv[1].isdigit():
a = int(sys.argv[1])
else:
print "First argument is not a digit"
sys.exit(1)
Run Code Online (Sandbox Code Playgroud)
或者尝试除了块(我愿意)
try:
a = int(sys.argv[1])
except ValueError:
print "Stupid user, please enter a number"
sys.exit(1)
Run Code Online (Sandbox Code Playgroud)