【发布时间】:2013-05-14 06:29:20
【问题描述】:
我有一个代码可以从文件中读取信息(行描述点、多边形、线和圆)并将其解析为相应的类。 Point 有 x 和 7 坐标,Line 有起点和终点。
我有一个列表 (line = ['L1','L((1,1), (1,2))','# comment']),我试着把它排成一行。问题在于创建端点,执行时出现以下错误ValueError: invalid literal for int() with base 10: '' fr the variable x2
有什么问题?
代码:
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])
point1 = Point(x1,y1)
p = point[1].split(",")
x2 = int(p[0][1:])
y2 = int(p[1][:-2])
point2 = Point(x2,y2)
line = Line(point1,point2)
shapes[name] = line
【问题讨论】:
-
尝试打印出
p[0][1:],看看它是否是您认为的那样。我的猜测是,你会感到惊讶。 -
这些是标准库的一部分吗?我可以从哪个模块获得
Point和Line? -
恰恰相反!它会打印出
1,但是当投射int()时,就会发生错误。 @mrKelley,那些是自写的课程 -
您的输入中有一些大写的
Ls - 小写的l是否可能已经潜入其中,这就是您所看到的数字1?跨度> -
当我删除创建
Point和Line对象的不相关行时,您的代码适用于我的示例输入。x2被赋值为 1。