Python:基数为10的int()的无效文字:'a'

Nee*_*Lad -3 python argv

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:列表索引超出范围

Xeu*_*eun 5

我不太确定你是否知道自己在做什么,但让我为你澄清一下:

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)