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}.")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}")gimbap x 2
------------
gimbap x 2Cada 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.
word = "Python"
print(word[0], word[5], word[-1])
print(len(word))
print(word[0:2], word[2:])P n n
6
Py thonword[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))TTEOKBOKKI
tteoKboKKi
True 14 10Para 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")It's lunch time.
Line one
Line two| f-string | f"...{name}..." põe valores no texto |
| índice | Número de posição de um caractere, começando em 0 |
| fatiamento | s[a:b]: do índice a até o índice b, sem incluí-lo |
| len() | Número de caracteres de uma string |
| método | Uma ferramenta escrita depois de um ponto, como s.upper() |
| \n | Sequência de escape para uma nova linha |
| in | "a" in "cat" dá True |
- O que isto mostra?
word = "banana" print(word[1]) - O que isto mostra?
word = "banana" print(word[-2]) - O que isto mostra?
print(len("Hi there!")) - O que isto mostra?
word = "school" print(word[1:4]) - O que isto mostra?
name = "Jun" print(f"Hi {name}, you are {13 + 1}.") - O que isto mostra?
print("ab" * 3) - O que isto mostra?
s = "hello" s.upper() print(s)HELLOhelloHelloUm erro
- O que isto mostra?
print("rice" in "fried rice") - O que isto mostra?
name = "Mina" print(f"{name}") print("{name}")Mina
MinaMina
{name}{name}
Mina{name}
{name}
- O que isto mostra?
print("Total: " + str(3 * 1000))Total: 3000Total: 3 * 1000Total: 31000Um erro
- "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:].
- 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