You have unsaved changes
Python
def obter_direcao(angulo):
    # Tabela de referência de direções e ângulos
    direcoes = {
        "N": 0,
        "NNE": 22.5,
        "NE": 45,
        "ENE": 67.5,
        "E": 90,
        "ESE": 112.5,
        "SE": 135,
        "SSE": 157.5,
        "S": 180,
        "SSW": 202.5,
        "SW": 225,
        "WSW": 247.5,
        "W": 270,
        "WNW": 292.5,
        "NW": 315,
        "NNW": 337.5,
        "N": 360
    }

    # Encontrar a direção correspondente ao ângulo fornecido
    menor_diferenca = float('inf')
    direcao_mais_proxima = None

    for direcao, ang in direcoes.items():
        diferenca = abs(angulo - ang)
        if diferenca < menor_diferenca:
            menor_diferenca = diferenca
            direcao_mais_proxima = direcao

    return direcao_mais_proxima

def imprimir_tabela_personalizada(valores_angulos):
    print("Tabela de Ângulos e Direções Correspondentes:")
    print("--------------------------------------------")
    print("| Hora | Ângulo (°) | Direção |")
    print("--------------------------------------------")
    for hora, angulo in enumerate(valores_angulos):
        direcao = obter_direcao(angulo)
        print(f"| {hora:02}h  | {angulo:8.2f}    | {direcao:7} |")
    print("--------------------------------------------")

def main():
    # Coletar os ângulos para as 24 horas de uma vez
    print("Cole os ângulos em graus para as 24 horas, um por linha:")
    valores_angulos = []
    while True:
        entrada = input("Cole os ângulos em graus, um por linha (24 linhas no total):\n")
        angulos = entrada.strip().split('\n')
        if len(angulos) == 24:
            try:
                valores_angulos = [float(ang) for ang in angulos]
                break
            except ValueError:
                print("Entrada inválida. Certifique-se de que todos os valores são números.")
        else:
            print("Você deve colar exatamente 24 ângulos, um por linha.")

    # Após coletar todos os ângulos, imprimir a tabela personalizada
    imprimir_tabela_personalizada(valores_angulos)

if __name__ == "__main__":
    main()
Cole os ângulos em graus para as 24 horas, um por linha:
Tabela de Ângulos e Direções Correspondentes:
--------------------------------------------
| Hora | Ângulo (°) | Direção |
--------------------------------------------
| 00h  |   270.00    | W       |
| 01h  |   223.00    | SW      |
| 02h  |   263.00    | W       |
| 03h  |   201.00    | SSW     |
| 04h  |   204.00    | SSW     |
| 05h  |   207.00    | SSW     |
| 06h  |   292.00    | WNW     |
| 07h  |   174.00    | S       |
| 08h  |   125.00    | SE      |
| 09h  |   118.00    | ESE     |
| 10h  |   121.00    | ESE     |
| 11h  |   129.00    | SE      |
| 12h  |   147.00    | SSE     |
| 13h  |   138.00    | SE      |
| 14h  |   143.00    | SE      |
| 15h  |   148.00    | SSE     |
| 16h  |   140.00    | SE      |
| 17h  |   167.00    | SSE     |
| 18h  |   178.00    | S       |
| 19h  |   188.00    | S       |
| 20h  |    63.00    | ENE     |
| 21h  |   239.00    | WSW     |
| 22h  |   251.00    | WSW     |
| 23h  |   309.00    | NW      |
--------------------------------------------