1
resposta

Exercício 'coordenada x e y'

... exercício da aula 2:

def defina_o_quadrante():

    coordenada_escolhida = input('Escolha as coordenadas de x e y: ')
    x, y = map(float, coordenada_escolhida.split(','))
    if x > 0 and y > 0:
        print('Coordenadas do primeiro quadrante')
    elif x < 0 and y > 0:
        print('Coordenadas do segundo quadrante')
    elif x < 0 and y < 0:
        print('Coordenadas do terceiro quadrante')
    elif x > 0 and y < 0:
        print('Coordenadas do quarto quadrante')
    else:
        print("Ponto localizado no eixo de origem")
defina_o_quadrante()

...

Implementei com a função map() que aplica o float na entrada fornecida, usando o split configurar o separador escolhido mas, vi que feito assim fica uma vulnerabilidade a erro caso o usuário não use o separador configurado no split.

1 resposta

Olá, Luiz! Tudo joia?

Uma maneira de contornar isso é adicionar um tratamento de exceção ao seu código para lidar com possíveis erros de entrada do usuário.

Aqui está um exemplo de como você pode fazer isso:

def defina_o_quadrante():
    try:
        coordenada_escolhida = input('Escolha as coordenadas de x e y (separadas por uma vírgula): ')
        x, y = map(float, coordenada_escolhida.split(','))
    except ValueError:
        print("Por favor, insira as coordenadas no formato correto (x,y).")
        return
    if x > 0 and y > 0:
        print('Coordenadas do primeiro quadrante')
    elif x < 0 and y > 0:
        print('Coordenadas do segundo quadrante')
    elif x < 0 and y < 0:
        print('Coordenadas do terceiro quadrante')
    elif x > 0 and y < 0:
        print('Coordenadas do quarto quadrante')
    else:
        print("Ponto localizado no eixo de origem")

defina_o_quadrante()

Nesse exemplo, usei um bloco try/except para capturar a exceção ValueError, que é lançada quando a função split() não consegue encontrar a vírgula para dividir a string de entrada. Se isso acontecer, o programa irá informar ao usuário para inserir as coordenadas no formato correto e encerrar a função.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.