Considere o código Python a seguir. def X(n): if (...
def X(n): if (type(N) != int): return -1 elif (N < 1): return 0 elif (N == 1): return 1 else: return N * X(N-1) print (X(4)) print (X(0)) print (X(1)) print (X(1.5)) print (X("A"))
Assinale o que acontece quando esse script é executada na IDLE Shell 3.9.9.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: B - Erro de compilação, “name 'N' is not defined”.
A questão apresentada trata-se de um problema comum em linguagens de programação, que é o cuidado com a identificação correta de variáveis quanto à questão de case sensitivity (sensibilidade ao caso, ou seja, distinção entre maiúsculas e minúsculas). Em Python, como em muitas outras linguagens de programação, nomes de variáveis são sensíveis a maiúsculas e minúsculas. Isso significa que 'N' e 'n' seriam considerados identificadores diferentes.
Na função X definida no código, o parâmetro formal é n (em minúsculo), mas dentro do corpo da função, é utilizado N (em maiúsculo) em vez de n. Python, portanto, considerará N como um nome de variável não definido, pois não corresponde ao parâmetro formal n que foi passado para a função.
Por esta razão, ao tentar executar a função, Python produzirá um erro de compilação informando que o nome 'N' não está definido. Isso acontecerá antes mesmo de qualquer chamada da função ser realizada, impedindo a execução do script e levando à resposta correta sendo a Alternativa B.
É importante sempre garantir consistência na utilização de identificadores de variáveis em seu código para evitar erros como este. Além disso, este exemplo ressalta a importância de uma revisão cuidadosa do código para identificar erros de digitação que podem levar a comportamentos inesperados ou falhas de execução.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
GAB B
Quase todas as linguagens são Sensitive Case (maiúsculo/minúsculo importa)
Menos PHP em relação a função/classe ou, opcionalmente, em constante
GABARITO B
Acertei essa questão, mas confesso que fiquei em dúvida sobre o trecho "Erro de compilação". A princípio Python é uma linguagem que utiliza um interpretador, logo, deveria ser interpretada e não compilada.
Gabarito B
Conforme o colega Leandro mencionou, python é uma linguagem Sensitive Case (Diferencia letras maíusculas e minúsculas).
Dessa forma, a variável N foi utilizada sem ter sido definida no escopo da função ou passada por parâmetro. A variável n foi defina como parâmetro e não foi utilizada na função.
Lembre-se: Em python "N" é diferente de "n".
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo