[EPXX] Parece que minha_funcao() explodiu 8-O

[EPXX] Parece que minha_funcao() explodiu 8-O

por José Coelho de Pina -
Número de respostas: 0

Salve,

Uma mensagem como

Parece que minha_funcao() explodiu 8-O

emitida pelo avaliador indica que a função minha_funcao() tem algum problema.

No caso, o problema é daqueles que mostram mensagens vermelhas no Python Shell e a execução do programa é encerrada. 

Mas como isso é possível se o programa/função passou nos testes do enunciado?


Bem, vejam o programa que fiz para verificar se um número é primo.
Vejam que ele funciona para a maioria dos números. Passa em vários testes, mas está errado e, em uma situação especifica, explode:


def main():
    n = int(input("Digite um inteiro positivo: "))
    if n != 2 and n % 2 == 0:
        print(n, "não é primo.") # resposta certa
    elif n == 3:
        print(x, "não é primo") # explode 
    else:
        print(n, "é primo") # resposta as vezes errada e as vezes certa
                            # a maioria das vezes errada, mas isso fica
                            # por conta do Teorema do Primos.

if __name__ == "__main__":
    main()

    
Digite um inteiro positivo: 2
2 é primo

Digite um inteiro positivo: 6
6 não é primo.

Digite um inteiro positivo: 10
10 não é primo.

Digite um inteiro positivo: 5
5 é primo

Digite um inteiro positivo: 7
7 é primo

Digite um inteiro positivo: 15  
15 é primo

Digite um inteiro positivo: 3
Traceback (most recent call last):
  File "primos.py", line 13, in <module>
    main()
  File "primos.py", line 6, in main
    print(x, "não é primo") # explode 
NameError: name 'x' is not defined