edubun
Português

Strings: trabalhando com texto

O Python conta as letras de "Python" a partir de 0, então "Python"[5] é a última letra, n, e "Python"[6] é um erro.

Um crachá precisa de texto montado com partes

Pense nos crachás de um evento da escola ou de uma reunião de clube. Todos têm o mesmo layout e um nome diferente, então um programa pode imprimir todos a partir de um só modelo. Texto em Python é uma string, e o jeito mais rápido de montar uma com partes é uma f-string: ponha a letra f antes das aspas de abertura e escreva nomes de variáveis entre chaves. O Python troca cada {name} pelo valor dessa variável.

name = "Mina"
club = "Robotics"
print(f"Hello, {name}!")
print(f"{name} joined {club}.")
Saída
Hello, Mina!
Mina joined Robotics.

Há duas formas mais antigas de juntar texto. O operador + cola strings uma na outra, e * repete uma string. Os dois lados do + precisam ser strings, então um número tem de virar texto antes com str(). As f-strings fazem essa conversão por você, e esse é um dos motivos de serem a escolha habitual.

item = "gimbap"
count = 2
print(item + " x " + str(count))
print("-" * 12)
print(f"{item} x {count}")
Saída
gimbap x 2
------------
gimbap x 2

Cada caractere tem um número de posição, começando em 0

Uma string é uma fileira de caracteres, e cada um tem um índice. O primeiro caractere está no índice 0, não no 1. Colchetes escolhem um caractere: word[0] é o primeiro. Índices negativos contam a partir do fim, então word[-1] é sempre o último caractere, qualquer que seja o tamanho. len() dá o número de caracteres, incluindo espaços e pontuação.

Números de índice de "Python": de 0 a 5 a partir do começo, de -6 a -1 a partir do fim. Um fatiamento word[0:2] para antes do índice 2.
word = "Python"
print(word[0], word[5], word[-1])
print(len(word))
print(word[0:2], word[2:])
Saída
P n n
6
Py thon

word[0:2] é um fatiamento: começa no índice 0 e para logo antes do índice 2, dando "Py". Se você omite o fim, como em word[2:], o fatiamento vai até o fim da string. A regra de parar antes parece estranha no início, mas faz com que word[0:2] + word[2:] sempre devolva a palavra inteira.

Os métodos de string devolvem uma nova string

As strings vêm com ferramentas embutidas chamadas métodos, escritas depois de um ponto. upper() e lower() mudam a caixa das letras, replace(old, new) troca todas as cópias de um trecho de texto por outro, e strip() tira os espaços das duas pontas, o que ajuda quando alguém digita um espaço a mais num formulário. A palavra-chave in verifica se uma string aparece dentro de outra e dá True ou False. Nenhum deles muda a string original. Uma string não pode ser alterada depois de criada; cada método devolve uma nova, e você a guarda atribuindo-a a um nome.

menu = "  tteokbokki  "
clean = menu.strip()
print(clean.upper())
print(clean.replace("k", "K"))
print("bok" in clean, len(menu), len(clean))
Saída
TTEOKBOKKI
tteoKboKKi
True 14 10

Para pôr uma aspa dentro de uma string, use o outro tipo de aspas em volta: "It's fine". Uma barra invertida inicia uma sequência de escape: \n dentro de uma string significa "comece uma nova linha aqui", então um só print pode mostrar duas linhas.

print("It's lunch time.")
print("Line one\nLine two")
Saída
It's lunch time.
Line one
Line two
f-stringf"...{name}..." põe valores no texto
índiceNúmero de posição de um caractere, começando em 0
fatiamentos[a:b]: do índice a até o índice b, sem incluí-lo
len()Número de caracteres de uma string
métodoUma ferramenta escrita depois de um ponto, como s.upper()
\nSequência de escape para uma nova linha
in"a" in "cat" dá True
  1. O que isto mostra?
    word = "banana"
    print(word[1])
  2. O que isto mostra?
    word = "banana"
    print(word[-2])
  3. O que isto mostra?
    print(len("Hi there!"))
  4. O que isto mostra?
    word = "school"
    print(word[1:4])
  5. O que isto mostra?
    name = "Jun"
    print(f"Hi {name}, you are {13 + 1}.")
  6. O que isto mostra?
    print("ab" * 3)
  7. O que isto mostra?
    s = "hello"
    s.upper()
    print(s)
    • HELLO
    • hello
    • Hello
    • Um erro
  8. O que isto mostra?
    print("rice" in "fried rice")
  9. O que isto mostra?
    name = "Mina"
    print(f"{name}")
    print("{name}")
    • Mina
      Mina
    • Mina
      {name}
    • {name}
      Mina
    • {name}
      {name}
  10. O que isto mostra?
    print("Total: " + str(3 * 1000))
    • Total: 3000
    • Total: 3 * 1000
    • Total: 31000
    • Um erro
Erros comuns
  • "A primeira letra é word[1]." Os índices começam em 0, então word[1] é a segunda letra. O último índice válido é len(word) - 1; "Python"[6] para com IndexError: string index out of range.
  • "Age: " + 15 imprime Age: 15 Uma string e um int não podem ser juntados com +. O Python para com TypeError: can only concatenate str (not "int") to str. Use str(15) ou uma f-string.
  • "Posso corrigir uma letra com word[0] = "J"." As strings não podem ser alteradas no lugar: TypeError: 'str' object does not support item assignment. Monte uma nova string, por exemplo "J" + word[1:].
Nota do professorContar a partir de 0 pede uma imagem, não uma regra. Desenhe as caixas com números em cima e embaixo, como na figura, e peça que os alunos apontem word[2] e word[-2] antes de digitar qualquer coisa. Os fatiamentos ficam mais fáceis quando eles veem os números como cercas entre as caixas, e não como rótulos nas caixas. A armadilha do upper() (chamar um método e não guardar o resultado) volta com as listas, então dedique um minuto a ela agora. Em fontes do Windows coreano, a barra invertida pode aparecer como o sinal do won; é a mesma tecla e o mesmo caractere para o Python.
Pontos-chave
  • f"...{x}..." põe valores no texto.
  • Os índices começam em 0; -1 é o último caractere.
  • s[a:b] vai de a até b, sem incluí-lo.
  • Métodos como upper() devolvem uma nova string; a original não muda.
  • "\n" é uma quebra de linha dentro de uma string.
Fontes deste curso (6)
  • Python Software Foundation, The Python Tutorial for Python 3.12 (docs.python.org/3.12/tutorial: 2 Using the Python Interpreter, 3 An Informal Introduction to Python (numbers, text, lists), 4 More Control Flow Tools (if, for, range, break and continue, defining functions, default argument values, 4.10 coding style: 4-space indentation), 5 Data Structures (list methods, 5.5 dictionaries, insertion order), 8 Errors and Exceptions (syntax errors, exceptions, reading the traceback, handling exceptions), 15 Floating-Point Arithmetic (0.1 + 0.2))
  • Built-in Functions (docs.python.org/3.12/library/functions.html: print, input, len, int, float, str, type, round (round half to even: round(0.5) and round(-0.5) are 0, round(1.5) is 2), range, sum, min, max, sorted)
  • Built-in Types (str methods upper, lower, replace, strip; dict.get; list.append, pop, remove, sort returning None)
  • General Python FAQ (docs.python.org/3.12/faq/general.html: Guido van Rossum began Python in the 1989 Christmas holidays, posted it to USENET in February 1991, named it after Monty Python's Flying Circus)
  • Curriculum for the Korean pages: 교육부 고시 제2022-33호 [별책 10] 정보과 교육과정 (PDF read 2026-10-19: 중학교 정보 [9정03-05] 리스트 등 데이터를 순차적으로 저장하는 구조, [9정03-06] 논리 연산과 중첩 제어 구조, [9정03-07] 함수 활용과 디버거로 오류 수정, [9정03-08] 실생활 문제를 프로그래밍으로 해결, 적용 시 고려 사항 「학생의 수준을 고려하여 적합한 프로그래밍 언어를 선정」; 고등학교 정보 [12정03-04] 자료형, [12정03-05] 표준입출력, [12정03-07] 제어 구조)
  • Bug story only: Smithsonian National Museum of American History, Log Book With Computer Bug, 1947, Harvard Mark II, "first actual case of bug being found", probably not Hopper's log book (americanhistory.si.edu/collections/object/nmah_334663, read 2026-10-19)

Data de verificação: 2026-10-19