我的飓风追踪器代码无法正常工作

时间:2019-10-26 00:39:25

标签: python python-3.x turtle-graphics

我需要使用一个txt文件来跟踪飓风并在python上用乌龟绘制它。这是我的代码,但我不知道为什么它不起作用。有人可以帮忙吗?

def irma():
(t, wn, map_bg_img) = irma_setup()
text = open("irma.csv", "r")
lines = text.readlines()
lines = lines[1:]
t.penup()
category = 0
for line in lines:
    line = line.strip()
    line = line.split(",")
    lat = float(line[2])
    lon = float(line[3])
    wind = float(line[4])
    if wind < 74:
        t.color("white")
        t.pensize(5)
    elif 74 <= wind <= 95:
        t.color("blue")
        t.pensize(10)
        category = 1
    elif 96 <= wind <= 110:
        t.color("green")
        t.pensize(15)
        category = 2
    elif 111 <= wind <= 129:
        t.color("yellow")
        t.pensize(20)
        category = 3
    elif 130 <= wind <= 156:
        t.color("orange")
        t.pensize(25)
        category = 4
    else:
        t.color("red")
        t.pensize(30)
        category = 5
    t.goto(lat, lon)
    t.pendown()
    t.write(category)

if __name__ == "__main__":
    irma()

1 个答案:

答案 0 :(得分:0)

您的代码的特定问题:

您的缩进是一场灾难,使您的代码无法正常工作。

您已经颠倒了纬度和经度到X&Y的映射。经度是绕地球的 long 方向,因此它是X坐标;纬度就是Y。

输入类别编号时,使用的颜色与绘制粗线相同,因此看不到。

这是我对您的代码的重做,以解决大多数问题:

def irma():
    text = open("irma.csv")
    lines = text.readlines()

    category = 0

    t, wn, map_bg_img = irma_setup()
    t.penup()

    for line in lines[1:]:
        line = line.strip().split(",")
        lat = float(line[2])
        lon = float(line[3])
        wind = float(line[4])

        if wind < 74:
            t.color("white")
            t.pensize(5)
        elif 74 <= wind <= 95:
            t.color("blue")
            t.pensize(10)
            category = 1
        elif 96 <= wind <= 110:
            t.color("green")
            t.pensize(15)
            category = 2
        elif 111 <= wind <= 129:
            t.color("yellow")
            t.pensize(20)
            category = 3
        elif 130 <= wind <= 156:
            t.color("orange")
            t.pensize(25)
            category = 4
        else:
            t.color("red")
            t.pensize(30)
            category = 5

        t.goto(lon, lat)
        t.pendown()
        t.color("black")
        t.write(category)

    wn.mainloop()

if __name__ == "__main__":

    irma()

该类别的标签仍无法正常工作,但我将由您自己解决。