ValueError:int()的文字无效

时间:2014-09-29 18:17:21

标签: python int

Traceback (most recent call last):
  File "school.py", line 86, in ?
    numthreads = int(sys.argv[1])
ValueError: invalid literal for int()

第86行:numthreads = int(sys.argv[1])

有什么答案吗?我是一个使用python的新手,所以我真的很感激一些帮助。

2 个答案:

答案 0 :(得分:1)

来自sys.argv[1]的值必须能够转换为int

>>> int(5)     # Okay! Converting int to int (no-op)
5

>>> int(5.1)   # Okay! Converting float to int
5

>>> int('c')   # Nope! Cannot convert char to int

Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    int('c')
ValueError: invalid literal for int() with base 10: 'c'

答案 1 :(得分:1)

在您的情况下,sys.argv[1]很可能是一个空字符串。确保您尝试转换的项目也是integer,而不是包含字母/符号的字符串。

另请注意,sys.argv是一个参数列表,其中0索引字符串本身就是脚本名称,因此对于命令file.py -arg1 -arg2,数组将为['file.py','-arg1','-arg2']