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.

Você vai aprender
  • 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 jeito recomendado de escrever

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 ignoraUm texto de verdade
Várias linhasUm # em cada linhaSim, entre as três aspas
No >>>Não mostra nadaMostra o texto
Use paraRecados no meio do código; desligar linhasDocstrings: 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çaEvite
Explique o porquê: # o forno novo esquenta mais: 35 minRepetir o código: # soma 1 ao lado de x = x + 1
Diga de onde vêm os números: # preço de outubroComentá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 dissoComentar cada linha "por obrigação"
Marque o que falta fazer: # TODO: aceitar pagamento em cartãoDeixar 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.

Duas linhas com # 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

FormaExemploQuando usar
# numa linha inteira# Recibo da padariaExplicar o trecho que vem embaixo
# no fim da linhaprint(10 * 0.75) # preço de outubroUm recado curto sobre aquela linha
Vários # seguidos# linha 1 ⏎ # linha 2Explicações maiores
# na frente de código# print("teste")Desligar uma linha temporariamente
"""…"""No topo do arquivo ou de uma funçãoSó 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.

Esqueceu o #

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.

Recado no fim da linha, sem o #
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.

Três aspas que nunca fecham
"""
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

EscritaO que faz
# textoComentário: o Python ignora do # até o fim da linha
código # textoComentá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
MensagemCausa 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 recadoFaltou o #
SyntaxError: unterminated triple-quoted string literalTrês aspas abertas e não fechadas

Exercícios

1. O sinal do comentário

Complete para a linha virar um comentário:

Recibo da padaria

2. Desligar uma linha

Complete para esta linha não rodar:

print("teste")

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ão SyntaxError em Python; um recado sem # também.
  • Próximo passo: o print a fundo, em print().