Python Comentários
Um programa é lido por duas plateias: o Python, que executa, e as pessoas, que precisam entender o que ele faz (inclusive você, daqui a três meses). Os comentários são os recados para as pessoas: textos dentro do programa que o Python simplesmente ignora. Em Python, um comentário começa com o sinal # (que se chama "cerquilha", "jogo da velha" ou hash). Nesta aula você vai aprender a escrever comentários, a usar o # para "desligar" uma linha enquanto testa, a diferença entre um comentário e um texto entre três aspas, e o que acontece quando alguém escreve comentários do jeito de outras linguagens.
- A escrever um comentário com
#, numa linha inteira ou no fim de uma linha de código. - A escrever comentários de várias linhas.
- A "comentar" uma linha de código para ela não rodar, sem apagá-la.
- Por que o
#dentro de aspas não é comentário. - Por que um texto entre três aspas (
"""…""") não é um comentário de verdade. - O que é um bom comentário, e o que é um comentário inútil.
- Os erros reais:
//e/* */de outras linguagens, e o#esquecido.
A ideia: o post-it na receita
A Ana tem um caderno de receitas que já passou pela avó e pela mãe. Nas margens, cada uma deixou recados a lápis: "a vó usava manteiga, não margarina", "forno da casa nova esquenta mais: 35 minutos bastam", "dobrar a receita para o aniversário". Esses recados não são passos da receita: quem faz o bolo lê, entende o porquê das coisas, mas não "executa" o recado.
Os comentários são esses recados a lápis. O Python, ao ler o arquivo, pula tudo o que vem depois de um # até o fim da linha, como se não existisse. As pessoas leem e entendem melhor o programa.
1. O primeiro comentário
# Recibo da Padaria Pão Quente
# Preços de outubro de 2026
print("Padaria Pão Quente")
print("10 pães:", 10 * 0.75) # o pão custa R$ 0,75
print("1 leite:", 6.50)
print("Total:", 10 * 0.75 + 6.50)
$ python3 recibo.py Padaria Pão Quente 10 pães: 7.5 1 leite: 6.5 Total: 14.0
Nenhum comentário apareceu na tela, e nenhum mudou o resultado. Para o Python, o programa é exatamente o mesmo que o recibo da aula Seu Primeiro Programa, sem os comentários.
- # Recibo da Padaria Pão Quente
- Um comentário de linha inteira: a linha começa com
#, então ela toda é ignorada. Bom para dizer, no topo, o que o programa faz. - print("10 pães:", 10 * 0.75)
- Código normal: o Python executa até o
#. - # o pão custa R$ 0,75
- Um comentário no fim da linha (inline): explica de onde veio o
0.75. Tudo a partir do#é ignorado.
O guia de estilo do Python (a PEP 8) sugere: depois do #, um espaço antes do texto (# assim, e não #assim); e, num comentário no fim da linha, pelo menos dois espaços entre o código e o #. Não é obrigatório, mas deixa tudo mais fácil de ler.
No modo interativo também
No modo interativo, um comentário sozinho não faz nada, e um comentário depois de uma conta não atrapalha a conta:
$ python3 -q >>> # isto é um comentário >>> 2 + 3 # uma conta 5 >>> exit()
2. Comentários de várias linhas
O Python não tem um sinal especial para comentários de várias linhas. O jeito é começar cada linha com #:
# Controle do estoque da lojinha da Ana.
# Cada produto tem um preço e uma quantidade.
# Atualizar os preços toda segunda-feira.
print("Estoque da lojinha")
Parece trabalhoso, mas os editores fazem isso por você: selecione as linhas e use o atalho de comentar. No VS Code, é Ctrl+/; no IDLE, Alt+3 comenta e Alt+4 descomenta. Cada editor tem o seu: procure "comentar" (comment) no menu.
3. "Desligando" uma linha para testar
Um uso muito comum do # não é escrever recados, mas desligar código. A Ana quer ver o recibo sem a linha dos pães, mas sem apagá-la (vai precisar dela de volta depois). Basta pôr um # na frente:
print("Padaria Pão Quente")
# print("10 pães:", 10 * 0.75)
print("1 leite:", 6.50)
$ python3 teste.py Padaria Pão Quente 1 leite: 6.5 « a linha dos pães não rodou
Os programadores chamam isso de "comentar" a linha. Para ela voltar a funcionar, "descomente": apague o #. É ótimo para procurar um erro: você desliga partes do programa até descobrir qual delas causa o problema.
Missão: a promoção acabou, mas a Ana quer guardar a linha para a próxima. Em vez de apagar, comente a linha da promoção (ponha um # no começo dela) e rode: devem sobrar só o nome da padaria e o leite.
print("Padaria Pão Quente")
print("Promoção cancelada! Pão em dobro só amanhã.")
print("1 leite:", 6.50)
print("Padaria Pão Quente")
# print("Promoção cancelada! Pão em dobro só amanhã.")
print("1 leite:", 6.50)
4. O # dentro de aspas não é comentário
O # só começa um comentário quando está fora de um texto. Dentro das aspas, ele é um caractere como outro qualquer:
print("Promoção # 1: pão em dobro") # este # é comentário
print('Use a tag #padaria')
$ python3 aspas.py Promoção # 1: pão em dobro Use a tag #padaria
O primeiro # da linha 1 está dentro das aspas, então faz parte do texto e apareceu na tela. O segundo está fora, então começa o comentário. Na linha 2, o #padaria também está dentro das aspas.
5. E os textos entre três aspas?
Em muito código Python você vai encontrar trechos assim, entre três aspas:
"""
Recibo da padaria.
Escrito pela Ana em outubro de 2026.
"""
print("Padaria Pão Quente")
$ python3 tripla.py Padaria Pão Quente
O texto entre as três aspas não apareceu, e por isso muita gente acha que ele é um "comentário de várias linhas". Não é. As três aspas criam um texto (uma string) que pode ter várias linhas. Num arquivo, um texto solto, que ninguém mostra nem guarda, não faz nada visível, como o "Ana" solto da aula O Modo Interativo. Mas ele existe: o Python lê e cria o texto. No modo interativo, dá para ver a diferença:
$ python3 -q >>> # isto é um comentário >>> "isto é um texto" 'isto é um texto' « o texto tem valor; o comentário, não >>> exit()
Os textos entre três aspas têm um uso importante e oficial: as docstrings, que documentam funções, classes e módulos, e que o help mostra (aula Docstrings). No topo de um arquivo, como no exemplo acima, eles são a docstring do módulo, e esse uso é legítimo. Para recados no meio do código, use #.
Comentário # | Texto """…""" | |
|---|---|---|
| O que é | Nada: o Python ignora | Um texto de verdade |
| Várias linhas | Um # em cada linha | Sim, entre as três aspas |
No >>> | Não mostra nada | Mostra o texto |
| Use para | Recados no meio do código; desligar linhas | Docstrings: no começo de um arquivo, de uma função ou de uma classe |
6. Comentários e a indentação
Como o Python ignora o comentário inteiro, o recuo de uma linha de comentário não importa: ela não entra nem sai de bloco nenhum.
aberta = True
if aberta:
# este comentário está fora do recuo
print("Aberta!")
# e este, com recuo demais
print("Pode entrar.")
$ python3 bloco.py Aberta! Pode entrar.
Nenhum IndentationError (aula Sintaxe e Indentação). Mas não faça assim: o costume é dar ao comentário o mesmo recuo do código que ele explica, para ficar claro a que parte ele se refere.
7. O que é um bom comentário
Um comentário bom diz o que o código não consegue dizer sozinho: o porquê de uma escolha, de onde vem um número, um cuidado que quem mexer depois precisa ter. Um comentário ruim repete o que o código já diz.
print("Total:", 10 * 0.75) # mostra o total
Esse comentário é inútil: o próprio print("Total:"… já diz que mostra o total. Compare:
print("Total:", 10 * 0.75) # 10 pães a R$ 0,75 (preço da tabela de outubro)
Agora o leitor sabe o que são o 10 e o 0.75, e de onde veio o preço. Algumas dicas:
| Faça | Evite |
|---|---|
Explique o porquê: # o forno novo esquenta mais: 35 min | Repetir o código: # soma 1 ao lado de x = x + 1 |
Diga de onde vêm os números: # preço de outubro | Comentários que ficaram velhos: o código mudou e o comentário não |
Avise dos cuidados: # não mudar a ordem: o total depende disso | Comentar cada linha "por obrigação" |
Marque o que falta fazer: # TODO: aceitar pagamento em cartão | Deixar montes de código comentado esquecido no arquivo |
O TODO ("a fazer", em inglês) é um costume: muitos editores destacam os comentários que começam com ele, para você achar o que ficou pendente. E lembre: um nome bem escolhido (preco_do_pao em vez de p) muitas vezes dispensa o comentário. Você vai ver isso em Nomes de Variáveis.
# que não são recados
A linha #!/usr/bin/env python3, no começo de um arquivo, é um comentário para o Python, mas o Linux a usa para saber quem executa o arquivo (aula Rodando um Programa). E em programas antigos aparece às vezes # -*- coding: utf-8 -*- no topo: ela avisava o Python 2 de que o arquivo tinha acentos. No Python 3, o padrão já é UTF-8, e ela não é mais necessária.
Formas diferentes de deixar um recado
| Forma | Exemplo | Quando usar |
|---|---|---|
# numa linha inteira | # Recibo da padaria | Explicar o trecho que vem embaixo |
# no fim da linha | print(10 * 0.75) # preço de outubro | Um recado curto sobre aquela linha |
Vários # seguidos | # linha 1 ⏎ # linha 2 | Explicações maiores |
# na frente de código | # print("teste") | Desligar uma linha temporariamente |
"""…""" | No topo do arquivo ou de uma função | Só docstrings (aula Docstrings) |
Quando dá errado
//, o comentário de outras linguagens
Quem já viu JavaScript, C, Java ou PHP costuma escrever comentários com duas barras:
// Recibo da padaria
print("Padaria Pão Quente")
$ python3 e1.py
File "/home/ana/python/e1.py", line 1
// Recibo da padaria
^^
SyntaxError: invalid syntax
O que aconteceu: em Python, // não é comentário: é um operador de conta, a "divisão inteira" (7 // 2 dá 3; aula Operadores Aritméticos). Uma divisão sem nada antes não faz sentido, e o Python reclama de sintaxe. Repare que nem a linha 2 rodou: é um SyntaxError. Como resolver: troque // por #.
/* … */, o comentário de bloco do C
/* Recibo da padaria */
print("Padaria Pão Quente")
$ python3 e2.py
File "/home/ana/python/e2.py", line 1
/* Recibo da padaria */
^
SyntaxError: invalid syntax
O que aconteceu: o Python não tem comentários de bloco. Para ele, / é divisão e * é multiplicação, e a linha não faz sentido. Como resolver: # Recibo da padaria, com um # em cada linha.
#
A Ana escreveu o recado e esqueceu o sinal:
Recibo da padaria
print("Padaria Pão Quente")
$ python3 e3.py
File "/home/ana/python/e3.py", line 1
Recibo da padaria
^^
SyntaxError: invalid syntax
O que aconteceu: sem o #, o Python tenta entender o recado como código. Três palavras soltas, uma depois da outra, não formam uma instrução. Os ^^ apontam para o da: o Python até aceitaria Recibo sozinho como um nome, mas não um nome seguido de outro. Com uma palavra só, o erro muda:
$ python3 e3b.py
Traceback (most recent call last):
File "/home/ana/python/e3b.py", line 1, in <module>
Recibo
NameError: name 'Recibo' is not defined
Agora a linha Recibo é "gramaticalmente" certa (um nome sozinho), e o Python tentou usá-la como uma variável, que não existe. Como resolver: nos dois casos, ponha o # no começo do recado.
#
print("Padaria Pão Quente") print o nome da padaria
$ python3 e5.py
File "/home/ana/python/e5.py", line 1
print("Padaria Pão Quente") print o nome da padaria
^^^^^
SyntaxError: invalid syntax
O que aconteceu: depois do ), a instrução acabou, e o Python encontrou mais palavras na mesma linha. Como resolver: print("Padaria Pão Quente") # mostra o nome da padaria.
"""
Recibo da padaria.
print("Padaria Pão Quente")
$ python3 e4.py
File "/home/ana/python/e4.py", line 1
"""
^
SyntaxError: unterminated triple-quoted string literal (detected at line 3)
O que aconteceu: "texto entre três aspas não terminado (percebido na linha 3)". As três aspas da linha 1 abriram um texto e ninguém o fechou, então até o print virou parte do texto. Esse é mais um motivo para usar # nos recados. Como resolver: feche com outras três aspas, ou troque o bloco por linhas com #.
Missão: a Ana deixou um recado na primeira linha, mas escreveu do jeito do JavaScript, e o programa não roda. Transforme o recado num comentário de Python e rode.
// Programa da padaria: mostra o nome e o preço do pão
print("Padaria Pão Quente")
print("Pão francês:", 0.75)
# Programa da padaria: mostra o nome e o preço do pão
print("Padaria Pão Quente")
print("Pão francês:", 0.75)
Missão final: comente o recibo
Missão: deixe o recibo da padaria explicado para quem for mexer nele depois. Acrescente (1) um comentário de linha inteira no topo, dizendo o que o programa faz, e (2) um comentário no fim de alguma linha de print, explicando um dos números (por exemplo, o preço do pão). O resultado na tela não pode mudar.
print("Padaria Pão Quente")
print("10 pães:", 10 * 0.75)
print("1 leite:", 6.50)
print("Total:", 10 * 0.75 + 6.50)
# Recibo da Padaria Pão Quente
print("Padaria Pão Quente")
print("10 pães:", 10 * 0.75) # o pão custa R$ 0,75
print("1 leite:", 6.50)
print("Total:", 10 * 0.75 + 6.50)
Referência rápida
| Escrita | O que faz |
|---|---|
# texto | Comentário: o Python ignora do # até o fim da linha |
código # texto | Comentário no fim da linha (dois espaços antes do #) |
# código | "Comenta" (desliga) a linha |
"texto # não é comentário" | Dentro de aspas, o # é só um caractere |
"""…""" | Texto de várias linhas (use para docstrings, não para comentários) |
# TODO: … | Costume para marcar o que falta fazer |
| Mensagem | Causa provável |
|---|---|
SyntaxError: invalid syntax com ^^ embaixo de // | Comentário do jeito de JavaScript/C: use # |
SyntaxError: invalid syntax com ^ embaixo de /* | Comentário de bloco do C: use # em cada linha |
SyntaxError: invalid syntax no meio de um recado, ou NameError com uma palavra do recado | Faltou o # |
SyntaxError: unterminated triple-quoted string literal | Três aspas abertas e não fechadas |
Exercícios
1. O sinal do comentário
Complete para a linha virar um comentário:
2. Desligar uma linha
Complete para esta linha não rodar:
3. O que aparece na tela com print("Sala #3") # a sala da Ana?
4. A Ana escreveu // total do dia no programa e recebeu SyntaxError: invalid syntax. Por quê?
5. Qual destes comentários é o mais útil?
6. Sobre o texto entre três aspas ("""…"""), é correto dizer:
Resumo
- Comentários são recados para as pessoas: o Python ignora tudo do
#até o fim da linha. - O
#pode ocupar a linha inteira ou vir no fim de uma linha de código (dois espaços antes, um depois). Várias linhas: um#em cada. - "Comentar" uma linha de código (pôr
#na frente) a desliga sem apagar; ótimo para testar. - Dentro de aspas, o
#é só um caractere. - O texto entre três aspas não é comentário: é um texto, usado nas docstrings.
- Bons comentários explicam o porquê e de onde vêm os números; não repetem o código.
//e/* */, de outras linguagens, dãoSyntaxErrorem Python; um recado sem#também.- Próximo passo: o
printa fundo, em print().