"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que o Python lança um erro \"NameError: name \'d\' não está definido\"?

Por que o Python lança um erro \"NameError: name \'d\' não está definido\"?

Publicado em 2024-11-21
Navegar:235

Why Does Python Throw a \

Erro Python: Nome 'd' não definido

Ao aprender Python, é comum encontrar erros que podem ser difíceis de identificar. Considere o seguinte exemplo do Python 3 para iniciantes absolutos:

Name = ""
Desc = ""
Gender = ""
Race = ""
# Prompt user for user-defined information
Name = input('What is your Name? ')
Desc = input('Describe yourself: ')

Quando executado, este código espera que o usuário insira um valor para seu nome, que ele insere como 'd'. No entanto, o programa responde com o erro:

NameError: name 'd' is not defined

Compreendendo o erro:

In Python 2. x, a função input() trata 'd' como uma expressão Python, interpretando-a como uma variável chamada 'd'. No entanto, como 'd' não foi definido no programa, ele aciona um NameError.

Solução:

Para resolver esse erro, considere duas abordagens:

1. Usando raw_input() em Python 2.x:

No Python 2.x, raw_input() retorna o valor inserido como uma string bruta, evitando que seja interpretado como uma expressão.

# Python 2.x
Name = raw_input('What is your Name? ')

2. Atualizando para Python 3.x:

Python 3.x introduziu uma função input() unificada que se comporta de forma consistente com raw_input() do Python 2.x. Portanto, usar Python 3.x eliminaria a necessidade de raw_input() neste cenário.

# Python 3.x
Name = input('What is your Name? ')
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3