2
respostas

Não deveria ser `True` ou `False` ao invés de `true` ou `fase` ?

>>> type(True)
<class 'bool'>
>>> a = true
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'true' is not defined
>>> a = True
>>> a
True
2 respostas

Ocorre que True é uma das palavras reservadas (keywords) de Python. As palavras reservadas definem a sintaxe da linguagem e sua estrutura e não podem ser usadas como nomes de variáveis. Python tem pouco mais de trinta palavras reservadas (e uma vez ou outra melhorias em Python introduzem ou eliminam uma ou duas):

Python 3.6.3 (default, Oct 11 2017, 09:31:33) 
[GCC 6.3.0 20170406] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> true = True
>>> print(true)
True
>>>

NameError: name 'true' is not defined - tradução literal -> NomeErro: nome 'true' não definido, isso quer dizer que ele não reconheci esta palavra. True, False, assim como outros nomes defindos no módulo buitin não são palavras reservadas do Python. Você pode, inclusive, dar um outro valor a True. True é apenas um nome definido em buitin e importado para o escopo global.

É diferente de estruturas da sintaxe da linguagem, como "if", "while", etc. Palavras realmente reservadas, com sentido estrito na linguagem.

BIBLIOGRAFIA: https://pythonhelp.wordpress.com/2013/09/01/o-que-mudou-no-python-3/

A resposta acima confirma minha indicação de que o texto explicativo do material da altura está errado:

Está escrito:

Uma variável do tipo bool pode ter apenas dois valores, true ou false, que podemos usar diretamente:

passou = true
errou = false

Deveria ser assim:

Uma variável do tipo bool pode ter apenas dois valores, True ou False, que podemos usar diretamente:

passou = True
errou = False

A diferença é que os valores tem que ser capitalizados: True e False. Se não estiverem capitalizados serão interpretados como identificadores gerando o erro que mostrei na minha primeira mensagem.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software