Condições e ciclos

Comparações, decisões, for, while, acumuladores, limites e terminação.

TLDR

Perguntar sobre esta página

ChatGPTClaudePerplexityGrokGeminiCopiar e abrirDeepSeekCopiar e abrir

Condições e ramos

  • ==, !=, <, <=, > e >= comparam valores. 0 <= nota <= 20 inclui os extremos. is compara identidade de objetos.
  • A precedência é not, and, or. and e or fazem curto-circuito: d != 0 and 10 / d > 2 não divide quando d é zero.
  • False, None, zero e coleções vazias contam como falso. and e or devolvem um dos operandos: "" or "sem nome" dá "sem nome".
  • if / elif / else executa apenas o primeiro ramo verdadeiro. Testa condições mais restritas primeiro: nota >= 15 antes de nota >= 10. Dois if independentes podem executar ambos.
  • Os dois pontos e a indentação delimitam os corpos.

For, range e acumuladores

  • for percorre um iterável. range(inicio, fim, passo) exclui fim; o passo não pode ser zero.
  • range(1, 5) fornece 1, 2, 3, 4; range(5, 0, -2) fornece 5, 3, 1. Uma direção incompatível produz um percurso vazio.
soma = 0
for k in range(1, 5):
    soma += k * k
print(soma)  # 30

Depois de cada k, a soma contém os quadrados de 1 até k. Este invariante explica o resultado. A soma vazia começa em 0; um produto começa normalmente em 1.

While e terminação

while testa antes de cada iteração e pode executar zero vezes. Identifica uma medida que avança para a paragem.

Somar dígitos
n = int(input())
soma = 0
while n > 0:
    soma += n % 10
    n //= 10
print(soma)
Resultado

Executa o código para ver a saída e os gráficos.

  • O contrato exige um inteiro não negativo. Soma 14: os dígitos são 3, 8, 0 e 3; os prefixos visitados são 3083, 308, 30, 3 e 0.
  • A paragem depende do prefixo zero, não de um dígito zero.
  • A divisão inteira reduz todo n > 0; sem essa atualização, o ciclo não termina.
  • A entrada zero dá soma zero.

Dígitos e representação

Para inverter um inteiro não negativo:

  1. Retira n % 10 e acrescenta-o com resultado = resultado * 10 + digito.
  2. Atualiza n //= 10, começando o resultado em zero.
  3. 1204 dá 4021, mas 1200 dá 21: um inteiro não conserva zeros à esquerda.

Para converter um inteiro não negativo para base inteira b >= 2:

  1. As divisões por b dão os dígitos do menos significativo para o mais significativo.
  2. Inverte essa ordem para apresentar o resultado.
  3. Trata zero explicitamente se estiveres a construir texto.

Interrupções e percursos

  • Uma sentinela marca o fim dos dados. Testa-a antes de processar o valor e lê a entrada seguinte em cada iteração.
  • break sai do ciclo mais interno; continue salta para a próxima iteração. Num while, não saltes a atualização necessária.
  • O else de um ciclo corre quando o percurso acaba normalmente, sem break, incluindo um percurso vazio. Sair por return ou exceção também o salta.
  • Percorre valores diretamente; usa enumerate para índice e valor. Ciclos aninhados com 2 linhas e 3 colunas visitam 6 pares.

À tua maneira

Aparência

Modo de cor
Tema
Cor de destaque

Leitura

Fonte de leitura

Álgebra, lógica e uma ideia de cada vez.

Código

Fonte do código

Navegação

Cursor de leitura, sem edição. h, j, k, l movem; / pesquisa nesta página. v seleciona caracteres; V seleciona linhas; y copia. Tab permite destacar ou comentar. Espaço ou Enter abre blocos recolhíveis. Nos cartões, h, j, k, l mudam o foco.

CSS personalizado

Ativa uma sugestão ou guarda o teu CSS. Só muda este navegador.

Usa --page, --text e --accent para acompanhar o tema.

Seletores e recuperação

.site-header, .prose, .course-card, [data-reading-history], [data-playground] e .page-actions.

Abre a aparência com a tecla vírgula ou no rodapé. Se o CSS esconder os controlos, abre esta página sem CSS personalizado.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

Copiar fórmula

A cópia automática não está disponível. Copia o LaTeX abaixo.

Pesquisar nesta página

Enter procura · n / N repetem · Esc cancela. Ctrl / Cmd K pesquisa todo o site.

Atalhos de teclado

Clica numa tecla para a mudar. Esc cancela. Backspace desativa.

PesquisarCtrl / Cmd K

Os atalhos não interferem enquanto escreves. Tab e Enter funcionam sempre.