turtle-graphics: использование оператора if-else для определения параметров черепахи - PullRequest
0 голосов
/ 26 октября 2018

У меня есть оператор if-else, который я использую, чтобы определить цвет пера черепахи и ширину линии. Когда я запускаю свою программу, она строит соответствующие точки, но рисует их только «белым» цветом с минимальной шириной линии. В моем списке «windspeeds» есть множество значений, которые превышают минимальный стандарт 74 в моем утверждении if-else. Что заставляет оператор if не передавать значение в правильный оператор?

t.penup()
t.setpos(longitudes[0], latitudes[0])
t.pendown()
i = 0
while i < len(latitudes):
    t.setpos(longitudes[i], latitudes[i])
    for index in windspeeds:
        if index < 74:
            t.pencolor("white")
            t.width(2)
        elif 74 <= index <= 95:
            t.pencolor("blue")
            t.width(4)
        elif 96 <= index <= 110:
            t.pencolor("green")
            t.width(6)
        elif 111 <= index <= 129:
            t.pencolor("yellow")
            t.width(8)
        elif 130 <= index <= 156:
            t.pencolor("#FFA500")
            t.width(10)
        elif 157 <= index:
            t.pencolor("red")
            t.width(12)
    i += 1

1 Ответ

0 голосов
/ 26 октября 2018

Я думаю, проблема в том, что вы перебираете все windspeeds для каждой точки, но не двигаете ручку.Последний элемент в windspeeds, вероятно, меньше 74.

Так что для каждой позиции вы проходите все скорости ветра, меняя цвет и ширину несколько раз, не перемещая ручку.Таким образом, после перемещения пера вы всегда возвращаетесь к t.pencolor("white") и t.width(2).

. Должен ли массив windspeeds индексироваться как массивы longitudes и latitudes?Если это так, вы, вероятно, хотите что-то вроде:

t.penup()
t.setpos(longitudes[0], latitudes[0])
t.pendown()
for i in range(len(latitudes)):
    t.setpos(longitudes[i], latitudes[i])
    speed = windspeeds[i]
    if speed < 74:
        t.pencolor("white")
        t.width(2)
    elif speed < 94:
        t.pencolor("blue")
        t.width(4)
...
    elif speed < 157:
        t.pencolor("#FFA500")
        t.width(10)
    else:
        t.pencolor("red")
        t.width(12)
...