错误:ValueError:int()以10为底的无效文字

时间:2018-10-30 12:21:48

标签: python

我是Python新手。当我尝试执行以下代码观看此Video时,出现错误。如何理解什么是错误,为什么会出现错误以及如何克服错误?

import sys
x = int(sys.argv[1])

错误:

x = int(sys.argv[1])
IndexError: list index out of range

比起我从'0'开始的索引值。 代码:

import sys
x = int(sys.argv[0])

错误:

x = int(sys.argv[0])
ValueError: invalid literal for int() with base 10:

2 个答案:

答案 0 :(得分:1)

看起来您正在从Pycharm本身运行该代码,而pycharm没有为您传递这些argv,因此您会遇到ListIndex错误。要解决此问题,您需要启动{{1} },然后导航到文件所在的目录。

cmd

其中arg1 arg2可以是任何东西,只要您在脚本中正确处理它们即可。

python <filename.py> arg1 arg2

发生这种情况是因为PyCharm将文件名传递为x = int(sys.argv[0]) ValueError: invalid literal for int() with base 10: 。并且在您的代码中,您尝试将文件名转换为argv[0],从而导致此错误。

int无法正常工作,因为PyCharm没有传递x = int(sys.argv[1])中文件名以外的任何值。因此argv[0]不存在,因此您会收到ListIndex错误。

答案 1 :(得分:0)

与所有问题一样,将其分解为较小的块。

首先,仅运行sys.argv 您会看到它是一个带有空字符串的列表。这意味着索引不足错误很明显,因为第二个索引处没有项目。

接下来,您不能将空字符串用作带有列表的索引。那将是您的第二个错误。