Em [[Linguagem de programação Python|Python]], uma string é uma sequência imutável de caracteres. Isso significa que, uma vez criada, você não pode alterar caracteres individuais dentro dela. No entanto, você pode criar novas strings a partir de operações com strings existentes. # Acessando Caracteres e Substrings Você pode acessar elementos individuais dentro da string usando indexação (começando do 0 para o primeiro caractere) e fatiamento (slicing). ``` python name = "Harry" print(name[0]) # Imprime o primeiro caractere 'H' print(name[1]) # Imprime o segundo caractere 'a' print(name[-1]) # Imprime o último caractere 'y' # Fatiamento (Slicing) print(name[1:4]) # Imprime 'arr' (do índice 1 até o 3) print(name[:3]) # Imprime 'Har' (do início até o índice 2) print(name[2:]) # Imprime 'rry' (do índice 2 até o final) print(name[::2]) # Imprime 'Hry' (a cada 2 caracteres) ``` # Operações Básicas com Strings Além de acessar caracteres, você pode realizar várias operações: * **Comprimento da String:** Use a função `len()` para obter o número de caracteres. ```python print(len(name)) # Saída: 5 ``` * **Concatenação:** Juntar strings usando o operador `+`. ```python first_name = "John" last_name = "Doe" full_name = first_name + " " + last_name print(full_name) # Saída: John Doe ``` * **Repetição:** Repetir uma string usando o operador `*`. ```python print("abc" * 3) # Saída: abcabcabc ``` * **Verificação de Substring:** Use o operador `in` para verificar se uma substring existe. ```python print("arr" in name) # Saída: True print("xyz" in name) # Saída: False ``` # Métodos Comuns de String [[Linguagem de programação Python|Python]] oferece uma vasta gama de métodos para manipular strings: * `upper()`: Converte todos os caracteres para maiúsculas. * `lower()`: Converte todos os caracteres para minúsculas. * `capitalize()`: Converte o primeiro caractere para maiúscula e o restante para minúscula. * `strip()`: Remove espaços em branco do início e do fim da string. * `replace(old, new)`: Substitui todas as ocorrências de uma substring por outra. * `split(delimiter)`: Divide a string em uma lista de substrings usando um delimitador. * `join(list_of_strings)`: Junta elementos de uma lista de strings em uma única string, usando a string como separador. ```python text = " Olá, Mundo! " print(text.strip()) # Saída: 'Olá, Mundo!' print(text.upper()) # Saída: ' OLÁ, MUNDO! ' print(text.replace("Mundo", "Python")) # Saída: ' Olá, Python! ' palavras = "Python é incrível".split(" ") print(palavras) # Saída: ['Python', 'é', 'incrível'] nova_frase = "-".join(palavras) print(nova_frase) # Saída: 'Python-é-incrível' ``` # Formatando Strings Strings podem ser formatadas de diferentes maneiras para incluir valores de variáveis ou expressões. As três principais abordagens são: 1. **Operador `%` (Antigo):** Usa placeholders como `%s` (string), `%d` (inteiro), `%f` (float). 2. **Método `str.format()`:** Usa chaves `{}` como placeholders e o método `.format()` para preencher. 3. **F-strings (Strings Literais Formatadas - Recomendado):** Prefixo `f` antes da string, permitindo expressões diretamente dentro das chaves `{}`. ``` python name = "Eric" age = 30 pi = 3.14159 # 1. Usando o operador % print("Hello, %s. You are %d years old." % (name, age)) print("Value of PI: %.2f" % pi) # Formatação para 2 casas decimais # 2. Usando o método .format() print("Hello, {}. You are {} years old.".format(name, age)) print("Hello, {0}. You are {1} years old.".format(name, age)) # Com índices print("Hello, {n}. You are {a} years old.".format(n=name, a=age)) # Com nomes print("Value of PI: {:.2f}".format(pi)) # 3. Usando F-strings (Recomendado) print(f"Hello, {name}. You are {age} years old.") print(f"Hello, {name.lower()}.") # Chamado com uma função. print(f"The sum of 5 and 3 is {5 + 3}.") # Expressões dentro das chaves print(f"Value of PI: {pi:.2f}") # Formatação para 2 casas decimais print(f"Number with leading zeros: {age:05d}") # Preenchimento com zeros (00030) print(f"Left aligned: {'text':<10}") # Alinhamento à esquerda print(f"Right aligned: {'text':>10}") # Alinhamento à direita print(f"Centered: {'text':^10}") # Alinhamento centralizado # Saídas (para os exemplos acima) # Hello, Eric. You are 30 years old. # Value of PI: 3.14 # Hello, Eric. You are 30 years old. # Hello, Eric. You are 30 years old. # Hello, Eric. You are 30 years old. # Value of PI: 3.14 # Hello, Eric. You are 30 years old. # Hello, eric. # The sum of 5 and 3 is 8. # Value of PI: 3.14 # Number with leading zeros: 00030 # Left aligned: text # Right aligned: text # Centered: text ``` A versão com indicação de formatação, também conhecida como **f-string**, é a forma mais moderna e recomendada de formatar strings em [[Linguagem de programação Python|Python]] 3.6+. Ela é mais legível, concisa e geralmente mais rápida para realizar esse tipo de formatação. :: **Referência:** :: [Python documentation on string methods](https://docs.python.org/3/library/string.html)