English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste tutorial, você aprenderá a criar, formatar, modificar e excluir strings em Python. Além disso, também lhe será apresentado várias operações e funções de strings.
uma string é uma sequência de caracteres.
um caractere é apenas um símbolo. Por exemplo, o inglês tem26caracteres.
Os computadores não lidam com caracteres, eles lidam com números (binários). Mesmo que você possa ver caracteres na tela, internamente eles são armazenados e manipulados como 0 e1da combinação.
essa conversão de caracteres para números é chamada de codificação, e o processo inverso é a decodificação. ASCII e Unicode são alguns dos codecs mais comuns.
Em Python, strings são sequências de caracteres Unicode. A introdução do Unicode inclui todos os caracteres de todos os idiomas e proporciona uma codificação unificada. Você pode encontrar mais informações aquiConheça mais sobre Unicode.
Você pode criar strings colocando caracteres entre aspas simples ou duplas. Mesmo que o Python permita o uso de aspas triplas, elas são geralmente usadas para representar strings de várias linhas e strings de documentação.
# Abaixo estão equivalentes my_string = 'Olá' print(my_string) my_string = "Olá" print(my_string) my_string = '''Olá''' print(my_string) # As strings de três aspas podem estender várias linhas my_string = "Olá, bem-vindo ao o mundo do Python" print(my_string)
Quando você executar o programa, a saída será:
Olá Olá Olá Olá, bem-vindo ao o mundo do Python
Podemos usar índices para acessar caracteres individuais e fatias para acessar uma sequência de caracteres. Os índices começam no 0. Tentar acessar caracteres fora do escopo do índice causará um erro IndexError. Os índices devem ser inteiros. Não podemos usar float ou outros tipos, o que causará um TypeError.
Python permite índices negativos em suas sequências.
Índice-1Representa o último item-2Representa o penúltimo item, por exemplo. Podemos usar o operador de fatia (ponto e vírgula) para acessar uma série de itens na string.
str = 'w'3codebox.com print('str = ', str) # O primeiro caractere print('str[0] = ', str[0]) # O último caractere print('str[-1] = '', str[-1] # Fatia do segundo ao quinto caractere print('str[1:5] = '', str[1:5] # Fatia a partir do6até o penúltimo2caracter print('str[5:-2] = '', str[5:-2]
Resultados de saída:
str = 'w'3codebox.com str[0] = 'n' str[-1] = 'm' str[1:5] = 'hooo' str[5:-2] = ''
Se tentar acessar um índice fora do intervalo ou usar números decimais, ocorrerá um erro.
# Índice deve estar no intervalo >>> my_string[15] ... IndexError: índice de string fora do intervalo # Índices devem ser inteiros >>> my_string[1.5] ... TypeError: índices de string devem ser inteiros
Considerando que os índices estão entre os elementos, é o melhor para visualizar fatias, conforme mostrado a seguir.
Para acessar um intervalo, é necessário usar índices, que cortarão uma parte da string.
As strings são imutáveis. Isso significa que uma vez que os elementos da string sejam alocados, não podem ser alterados. Podemos simplesmente alocar diferentes strings para o mesmo nome.
>>> my_string = 'w'3codebox.com >>> my_string[5] = 'a' ... TypeError: objeto 'str' não suporta atribuição de itens >>> my_string = 'Python' >>> my_string 'Python'
Não podemos excluir ou excluir caracteres de uma string. Mas podemos usar a palavra-chave del para excluir completamente a string.
>>> del my_string[1] ... TypeError: objeto 'str' não suporta exclusão de itens >>> del my_string >>> my_string ... NameError: nome 'my_string' não está definido
As strings podem executar muitas operações, tornando-asEm PythonO mais comumUm dos tipos de dados.
Conectar duas ou mais strings em uma única string é chamado de concatenação.
+ Operadores executam operações de concatenação no Python. Basta escrever dois textos de string juntos, também podem ser concatenados.
* Operadores podem ser usados para repetir strings uma quantidade específica de vezes.
str1 = 'Hello' str2 ='World!' #using + print('str1 + str2 =, str1 + str2) #using * print('str1 * 3 =, str1 * 3)
Escrever dois textos de string juntos também se parecerá+Operadores são usados para concatená-los juntos.
Se quiser conectar strings em linhas diferentes, você pode usar parênteses.
>>> # Dois textos de string juntos >>> 'Hello ''World!' 'Hello World!' >>> # Usando parênteses >>> s = ('Hello ' ... 'World') >>> s 'Hello World'
usandoloop forPodemos percorrer a string. Este é um exemplo de calcular o número de 'l' na string.
count = 0 for letter in 'Hello World': if(letter == 'l'): count += 1 print(count, 'letters found')
Podemos usar a palavra-chave in para testar se uma substring existe na string.
>>> 'a' in 'program' True >>> 'at' not in 'battle' False
Você pode usar várias funções integradas de sequence e string.
Alguns dos mais comuns são enumerate() e len(). A função enumerate() serve para: retornar um objeto de enumeração. Ele contém em pares os índices e valores de todos os itens da string. Isso é útil para iterações.
Da mesma forma, len() retorna o comprimento da string (número de caracteres).
str = 'cold' #enumerate() list_enumerate = list(enumerate(str)) print('list(enumerate(str) = ', list_enumerate) #Número de caracteres print('len(str) = ', len(str))
Se quisermos imprimir um texto-Ele disse: "O que há aí?"-Não podemos usar aspas simples ou duplas. Isso causará SyntaxError o texto em si contém aspas simples e duplas.
>>> print("Ele disse, \ ... SyntaxError: sintaxe inválida >>> print('Ele disse, \ ... SyntaxError: sintaxe inválida
Uma maneira de resolver isso é usar três aspas. Além disso, podemos usar sequências de escape.
As sequências de escape começam com uma barra invertida e são interpretadas de maneira diferente. Se usarmos aspas simples para strings, devemos escapar todas as aspas simples dentro da string. O mesmo se aplica às aspas duplas. Este é o método de representar o texto acima.
# Uso de três aspas simples print('''Ele disse, \ # Sequência de escape de aspas simples print('Ele disse, \ # Sequência de escape de aspas duplas print("Ele disse, \"O que há lá?\")
Esta é uma lista de todas as sequências de escape suportadas pelo Python.
Sequência de escape | Descrição |
---|---|
\newline | A barra invertida e a quebra de linha são ignoradas |
\\ | Barra invertida |
\' | Aspas simples |
\" | Aspas duplas |
\a | Círculo de alarme ASCII |
\b | Tecla de backspace ASCII |
\f | Página de quebra ASCII |
\n | Quebra de linha ASCII |
\r | Carro de retorno ASCII |
\t | Tabulação horizontal ASCII |
\v | Tabulação vertical ASCII |
\ooo | de caracteres com valor octal |
\xHH | de caracteres com valor hexadecimal HH |
Aqui estão alguns exemplos
>>> print("C:\\Python32\\Lib) C:\Python32\Lib >>> print("Este é impresso\nin duas linhas") Este é impresso em duas linhas >>> print("Este é um \x48\x45\x58 representação) Este é a representação HEX
À vezes podemos querer ignorar sequências de escape em strings. Para isso, podemos colocá-las à frente de uma string r ou R. Isso significa que é uma string original e qualquer sequência de escape será ignorada.
>>> print("Este é um \x61 um bom exemplo)) Este é um bom exemplo >>> print(r"Este é um \x61 um bom exemplo)) Este é um \x61 um bom exemplo
O método format() usado com objetos string é muito genérico e muito poderoso em termos de formatação de strings. A string de formatação contém chaves {} como placeholders ou campos substituídos.
Podemos usar parâmetros posicionais ou de palavras-chave para especificar a ordem.
# Ordem padrão (implícita) default_order = "{}, {} e {}".format('John','Bill','Sean') print('\n--- Ordem Padrão ---) print(default_order) # Ordem por parâmetros posicionais positional_order = "{1, {0} e {2}".format('John','Bill','Sean') print('\n--- Ordem Posicional ---) print(positional_order) # Ordem por parâmetros de palavras-chave keyword_order = "{s}, {b} e {j}".format(j='John',b='Bill',s='Sean') print('\n--- Ordem de Palavras-chave ---) print(keyword_order)
O método format() pode ter especificações de formatação opcionais. Eles usam dois pontos para separar o nome do campo. Por exemplo, podemos alinhar à esquerda <, à direita > ou ^ para centralizar strings. Também podemos formatar inteiros em binário, hexadecimal, etc., e números de ponto flutuante podem ser arredondados ou exibidos em formato exponencial. Você pode usar muitos formatos. Acesse aqui paraobter o format()disponíveismétodosTodasFormatação de strings.
>>> # Formatação de inteiros >>> "Representação binária de {0} é {0:b}".format(12) 'Representação binária de 12 é 1100' >>> # Formatação de números de ponto flutuante >>> "Representação de expoente: {0:e}".format(1566.345) 'Representação de expoente: 1.566345e+03" >>> # Arredondamento >>> "Um terço é: {0:.3f}".format(1/3) 'Um terço é: 0.333" >>> # Alinhamento de strings >>> "|{:<10|{:^10|{:}>10|".format('butter','bread','ham') '|butter | bread | ham|'
Nós até podemos formatar strings da mesma forma que o sprintf() no linguagem de programação C antigo. Usamos o operador % para concluir essa tarefa.
>>> x = 12.3456789 >>> print('O valor de x é %',3.2f' %x) O valor de x é 12.35 >>> print('O valor de x é %',3.4f' %x) O valor de x é 12.3457
Os objetos de string têm muitos métodos disponíveis. O método format() mencionado acima é um deles. Métodos comuns incluem lower(), upper(), join(), split(), find(), replace() etc. Aqui está a lista completaMétodos integrados para manipulação de strings no Python.
>>> 'w3codebox".lower() 'w3codebox' >>> 'w3codebox".upper() 'w3codebox' >>> 'Esta string splitará todas as palavras em uma lista'.split() ['Esta', 'will', 'split', 'all', 'words', 'into', 'a', 'lista'] >>> ' '.join(['Esta', 'will', 'join', 'all', 'words', 'into', 'a', 'string']) 'Esta string juntará todas as palavras em uma string' >>> 'Ano Novo Brillante'.find('ew') 7 >>> 'Ano Novo Brillante'.replace('Ano Novo','Brillante') 'Ano Novo Brillante'