Seção 7.9–7.10 — Método format e projeto prático
O método format() permite criar strings com valores inseridos dinamicamente. Os campos entre chaves {} são substituídos pelos argumentos fornecidos, identificados por índice:
O mesmo índice pode ser reutilizado várias vezes na mesma string:
Os índices também podem ser usados fora de ordem:
Após o índice, um dois pontos (:) indica especificações de formato. Um número define a largura mínima do campo:
O alinhamento é controlado por < (esquerda), > (direita) ou ^ (centro):
Antes do alinhamento, um caractere de preenchimento (fill) substitui os espaços em branco:
Para números, podemos usar zeros à esquerda, separador de milhar, casas decimais e sinal:
| Formato | Descrição | Exemplo |
|---|---|---|
| b | Binário | {:b} de 5678 → 1011000101110 |
| c | Caractere Unicode | {:c} de 65 → A |
| d | Decimal (padrão) | {:d} de 5678 → 5678 |
| n | Decimal com locale | {:n} de 5678 → 5.678 (pt_BR) |
| o | Octal | {:o} de 5678 → 13056 |
| x | Hexadecimal minúsculo | {:x} de 5678 → 162e |
| X | Hexadecimal maiúsculo | {:X} de 5678 → 162E |
| Formato | Descrição |
|---|---|
| e | Notação científica (minúsculo) |
| E | Notação científica (maiúsculo) |
| f | Ponto flutuante fixo |
| g | Geral: usa f ou e conforme magnitude |
| G | Geral: usa f ou E conforme magnitude |
| n | Ponto flutuante com locale |
| % | Percentagem (multiplica por 100) |
Vamos aplicar os conceitos de strings em um jogo da forca completo. O jogo pede uma palavra secreta, mostra o progresso do jogador (pontos no lugar das letras ainda não descobertas) e desenha o boneco conforme os erros aumentam.
Conceitos-chave utilizados:
lower() e strip() para normalizar a entradafor sobre os caracteres da palavraacertos e digitadas como conjuntos de letrascontinue para pular para a próxima iteração do laçoNotas sobre o código: ① Converte a palavra para minúsculas e remove espaços nas bordas. ② Imprime 100 linhas em branco para “limpar” a tela (a palavra não deve ser vista pelo jogador). ③ Expressão condicional: mostra a letra se ela está nos acertos, caso contrário mostra ponto. ④ continue pula diretamente para o começo do próximo laço, sem executar o restante do bloco.
A instrução continue interrompe a iteração atual de um laço e vai imediatamente para a próxima. No jogo da forca, quando o jogador tenta uma letra que já foi digitada, continue evita que o programa registre novamente essa tentativa e redesenhe o boneco desnecessariamente.
Modifique o programa da Listagem 7.45 de forma a escrever a palavra secreta caso o jogador perca (quando erros == 6).
Modifique o jogo da forca para utilizar uma lista de palavras. No início, pergunte um número ao usuário e calcule o índice da palavra pela fórmula:
índice = (número * 776) % len(lista_de_palavras)
Modifique o programa para utilizar listas de strings para desenhar o boneco da forca, em vez de imprimir cada linha individualmente com if/elif. Dica: crie uma lista onde cada elemento é a linha correspondente ao número de erros.
Escreva um jogo da velha para dois jogadores. O tabuleiro deve ser representado como uma lista (ou lista de listas) e exibido após cada jogada. O programa deve detectar quando um jogador vence ou quando há empate.