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)