Python:将坐标从文本文件传递到Turtle

时间:2014-04-17 05:53:51

标签: python-3.x turtle-graphics

我有一个测试文件,其上有坐标我的目的是创建一个函数,它接受文本文件并将其转换为坐标以绘制在乌龟中绘制图像:

river, 5
500, 500
-500, 360
400, 500

shadow, 4
500, 300
5, 500
300, 400

到目前为止,我有以下

f =open("coordinates.txt", "r")
for line in f:
    line=line.split(",")
    data=[]
    if line:
        data.append([i.strip() for i in line])

跑完后我得到以下内容:

    [['river', '5']]
    [['500', '500']]
    [['-500', 360]]
    [['400', '500']]
    [['']]
    [['shadow', '4']]
    [['500', '300']]
    [['5', '500']]
    [['300', '400']]
    [['']]

但是当我把它传递给龟时,它会断裂并且不起作用。我的乌龟功能如下:

p=[]
letter=block[0]
for line in block[1:]:
          l.append(line)
k=p[0]
turtle.setpos(k[0],k[1])

1 个答案:

答案 0 :(得分:0)

这似乎是代码的随机集合而不是程序。下面是我从数据和代码重建程序的意图。数据读入列表如下:

[('river', '5'), (500, 500), (-500, 360), (400, 500), ('shadow', '4'), (500, 300), (5, 500), (300, 400)]

然后用乌龟画线。

import turtle

turtle.setup(1000, 1000)

data = []

with open('coordinates.txt') as my_file:
    for line in my_file:
        line = line.rstrip()

        if line:
            x, y = line.split(', ', maxsplit=1)

            try:
                data.append((int(x), int(y)))
            except ValueError:
                data.append((x, y))

print(data)

turtle.penup()

for pair in data:
    if isinstance(pair[0], int):
        turtle.setpos(pair)
        turtle.pendown()
    else:
        print('Drawing {} ({})'.format(*pair))
        turtle.penup()

turtle.hideturtle()

turtle.done()

我不能说示例图很有意思:

enter image description here