Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:ValueError:int()的文本无效,以10为底:'';错误_Python_List_Int - Fatal编程技术网

Python:ValueError:int()的文本无效,以10为底:'';错误

Python:ValueError:int()的文本无效,以10为底:'';错误,python,list,int,Python,List,Int,我有一个代码,可以从文件中读取信息(线描述点、多边形、线和圆),并将其解析为相应的类。点有x和7个坐标,线有起点和终点 我有一个列表(line=['L1','L((1,1),(1,2)),“#comment']),我试着把它排成一行。问题在于创建端点时,执行时出现以下错误ValueError:invalid literal for int(),以10为基数:“”fr变量x2 有什么问题 代码: 您的错误消息表示您正在尝试将空字符串转换为int。在转换之前,请仔细检查所有数据以验证这一点 毫无疑问

我有一个代码,可以从文件中读取信息(线描述点、多边形、线和圆),并将其解析为相应的类。点有x和7个坐标,线有起点和终点

我有一个列表(
line=['L1','L((1,1),(1,2)),“#comment']
),我试着把它排成一行。问题在于创建端点时,执行时出现以下错误
ValueError:invalid literal for int(),以10为基数:“”
fr变量
x2

有什么问题

代码:


您的错误消息表示您正在尝试将空字符串转换为int。在转换之前,请仔细检查所有数据以验证这一点

毫无疑问,如果数据正确,转换为整数将起作用。因此,唯一的结论是你的数据不正确。你在对你的问题的评论中声称数据是好的,但这根本不可能是真的


请相信python解释器而不是您自己的假设。

您的错误消息说您正在尝试将空字符串转换为int。在转换之前,请立即仔细检查所有数据以验证这一点

毫无疑问,如果数据正确,转换为整数将起作用。因此,唯一的结论是你的数据不正确。你在对你的问题的评论中声称数据是好的,但这根本不可能是真的


相信python解释器而不是你自己的假设。

错误表明你的代码有问题,但事实上它运行正确。 如果您遇到错误,那么找到错误出现的行是值得的,并使用
print
打印它们的值,以确保您将正确的值传递给正确的方法

处理这种(乍一看)有趣格式的一个简单方法是使用python的
eval()
函数。你会注意到列表的第二部分看起来很像一组两组,事实上是这样的

如果执行此操作,将得到一个很好的设置对象:

eval("((1,1), (1,2))")
# equivalent to this:
eval(line[1][1:],{}) # passing an empty dict as the 2nd argument makes eval a (bit) safer

但这只是一种快速而肮脏的方法,不应该在生产代码中使用。

错误表明代码有问题,但实际上它运行正确。 如果您遇到错误,那么找到错误出现的行是值得的,并使用
print
打印它们的值,以确保您将正确的值传递给正确的方法

处理这种(乍一看)有趣格式的一个简单方法是使用python的
eval()
函数。你会注意到列表的第二部分看起来很像一组两组,事实上是这样的

如果执行此操作,将得到一个很好的设置对象:

eval("((1,1), (1,2))")
# equivalent to this:
eval(line[1][1:],{}) # passing an empty dict as the 2nd argument makes eval a (bit) safer

但这只是一种快速而肮脏的方法,不应该在生产代码中使用。

我删除了您没有提供足够信息的部分,我仍然没有收到相同的错误

def make_line(line):
    name = line[0]
    point = line[1].split(", ")
    p = point[0].split(",")
    x1 = int(p[0][3:])
    y1 = int(p[1][:-1])
    p = point[1].split(",")
    x2 = int(p[0][1:])
    y2 = int(p[1][:-2])
    return x1, y1, x2, y2

>>> make_line(['L1','L((1,2), (1,1))','# comment'])
(1, 2, 1, 1)

我删除了你没有提供足够信息的部分,我仍然没有得到相同的错误

def make_line(line):
    name = line[0]
    point = line[1].split(", ")
    p = point[0].split(",")
    x1 = int(p[0][3:])
    y1 = int(p[1][:-1])
    p = point[1].split(",")
    x2 = int(p[0][1:])
    y2 = int(p[1][:-2])
    return x1, y1, x2, y2

>>> make_line(['L1','L((1,2), (1,1))','# comment'])
(1, 2, 1, 1)

尝试打印出
p[0][1::
,看看它是否是您所认为的。我的客人是,你会惊讶的。这些是标准图书馆的一部分吗?我可以从哪个模块获得
线
?相反!它会打印出
1
,但当抛出
int()
时,就会出现错误@凯利先生,这些都是自己写的类你的输入中有一些大写字母
L
s-有可能是小写字母
L
爬进去了吗,这就是您所看到的数字
1
?当我删除创建
线
对象的不相关行时,您的代码与示例输入一起工作
x2
被赋值为1。请尝试打印出
p[0][1://code>以查看它是否是您认为的值。我的客人是,你会惊讶的。这些是标准图书馆的一部分吗?我可以从哪个模块获得
线
?相反!它会打印出
1
,但当抛出
int()
时,就会出现错误@凯利先生,这些都是自己写的类你的输入中有一些大写字母
L
s-有可能是小写字母
L
爬进去了吗,这就是您所看到的数字
1
?当我删除创建
线
对象的不相关行时,您的代码与示例输入一起工作
x2
的值为1。发布的代码实际上给出了正确的结果,因此您的答案肯定是错误的。为解析推荐
eval
是一个可怕的建议。我知道
eval()
不是一个好的做法,但我演示了一种快速简便的方法。你说得对,我应该把它的缺点说清楚。更新了帖子。发布的代码实际上给出了正确的结果,所以你的答案一定是错的。为解析推荐
eval
是一个可怕的建议。我知道
eval()
不是一个好的做法,但我演示了一种快速简便的方法。你说得对,我应该把它的缺点说清楚。更新了POST,重新检查了所有内容,但没有发现错误,因此我继续测试代码,但避免了出现错误的功能。输入函数的行是从文件中读取的。在某个时候,我把这一行放在文件的末尾,而不是中间,这样东西就可以工作了。“神奇的神秘漏洞修复”我重新检查了所有的东西,但没有发现错误,所以我继续测试我的代码,但避免了错误的功能。输入函数的行是从文件中读取的。在某个时候,我把这一行放在文件的末尾,而不是中间,这样东西就可以工作了。“神奇神秘虫修复”就在那里