Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> python

Dominando Strings em Python: Criação, Formatação e Manipulação

Strings em Python

Neste tutorial você aprenderá a criar, formatar, modificar e deletar strings em Python. Também será apresentado a várias operações e funções de string.

Vídeo: Strings em Python

O Que é String em Python?

Uma string é uma sequência de caracteres.

Um caractere é simplesmente um símbolo. Por exemplo, o idioma inglês tem 26 caracteres.

Computadores não lidam com caracteres, eles lidam com números (binário). Mesmo que você veja caracteres na tela, internamente eles são armazenados e manipulados como combinação de 0s e 1s.

Essa conversão de caractere para número é chamada encoding (codificação), e o processo reverso é decoding (decodificação). ASCII e Unicode são algumas das codificações populares usadas.

Em Python, uma string é uma sequência de caracteres Unicode. Unicode foi introduzido para incluir todos os caracteres de todas as linguagens e trazer uniformidade na codificação. Você pode aprender sobre Unicode em Python Unicode.


Como Criar uma String em Python?

Strings podem ser criadas envolvendo caracteres em aspas simples ou duplas. Até aspas triplas podem ser usadas em Python, mas geralmente para representar strings multilinha e docstrings.

# definindo strings em Python
# todas as seguintes são equivalentes
my_string = 'Hello'
print(my_string)
my_string = "Hello"
print(my_string)
my_string = '''Hello'''
print(my_string)
# aspas triplas podem estender múltiplas linhas
my_string = """Hello, welcome to the world of Python"""
print(my_string)

Quando você executa o programa, a saída será:

Hello Hello Hello Hello, welcome to the world of Python

Como Acessar Caracteres em uma String?

Podemos acessar caracteres individuais usando indexação e um intervalo de caracteres usando fatiamento. Índice começa em 0. Tentar acessar caractere fora do intervalo levantará IndexError. O índice deve ser inteiro. Não podemos usar floats ou outros tipos, isso resultará em TypeError.

Python permite indexação negativa para suas sequências.

O índice -1 refere-se ao último item, -2 ao penúltimo e assim por diante. Podemos acessar um intervalo de itens em uma string usando o operador de fatiamento : (dois-pontos).

# Acessando caracteres de string em Python
str = 'programiz'
print('str = ', str)
# primeiro caractere
print('str[0] = ', str[0])
# último caractere
print('str[-1] = ', str[-1])
# fatiamento 2º a 5º caractere
print('str[1:5] = ', str[1:5])
# fatiamento 6º ao 2º último
print('str[5:-2] = ', str[5:-2])

Quando executamos o programa acima, obtemos a seguinte saída:

str = programiz str[0] = p str[-1] = z str[1:5] = rogr str[5:-2] = am

Se tentarmos acessar índice fora do intervalo ou usar números que não sejam inteiros, obteremos erros.

# índice deve estar no intervalo
>>> my_string[15]
...
IndexError: string index out of range
# índice deve ser inteiro
>>> my_string[1.5]
...
TypeError: string indices must be integers

Fatiamento pode ser melhor visualizado considerando o índice entre os elementos como mostrado abaixo.

Se quisermos acessar um intervalo, precisamos do índice que fatiará a porção da string.

Dominando Strings em Python: Criação, Formatação e Manipulação

Como Mudar ou Deletar uma String?

Strings são imutáveis. Isso significa que elementos de uma string não podem ser alterados após atribuídos. Podemos simplesmente reatribuir strings diferentes ao mesmo nome.

>>> my_string = 'programiz'
>>> my_string[5] = 'a'
...
TypeError: 'str' object does not support item assignment
>>> my_string = 'Python'
>>> my_string
'Python'

Não podemos deletar ou remover caracteres de uma string. Mas deletar a string inteiramente é possível usando a palavra-chave del.

>>> del my_string[1]
...
TypeError: 'str' object doesn't support item deletion
>>> del my_string
>>> my_string
...
NameError: name 'my_string' is not defined

Operações com Strings em Python

Existem muitas operações que podem ser realizadas com strings, o que as torna um dos tipos de dados mais usados em Python.

Para aprender mais sobre tipos de dados disponíveis em Python visite: Python Data Types

Concatenação de Duas ou Mais Strings

Juntar duas ou mais strings em uma única é chamado concatenação.

O operador + faz isso em Python. Simplesmente escrever dois literais de string juntos também os concatena.

O operador * pode ser usado para repetir a string por um número determinado de vezes.

# Operações com Strings Python
str1 = 'Hello'
str2 = 'World!'
# usando +
print('str1 + str2 = ', str1 + str2)
# usando *
print('str1 * 3 =', str1 * 3)

Quando executamos o programa acima, obtemos a seguinte saída:

str1 + str2 = HelloWorld! str1 * 3 = HelloHelloHello

Escrever dois literais de string juntos também os concatena como o operador +.

Se quisermos concatenar strings em linhas diferentes, podemos usar parênteses.

>>> # dois literais de string juntos
>>> 'Hello ''World!'
'Hello World!'
>>> # usando parênteses
>>> s = ('Hello '
... 'World')
>>> s
'Hello World'

Iterando Sobre uma String

Podemos iterar sobre uma string usando loop for. Aqui está um exemplo para contar o número de 'l's em uma string.

# Iterando sobre uma string
count = 0
for letter in 'Hello World':
    if letter == 'l':
        count += 1
print(count, 'letters found')

Quando executamos o programa acima, obtemos a seguinte saída:

3 letters found

Teste de Pertinência em String

Podemos testar se uma substring existe dentro de uma string ou não, usando a palavra-chave in.

>>> 'a' in 'program'
True
>>> 'at' not in 'battle'
False

Funções Built-in para Trabalhar com Strings

Várias funções built-in que funcionam com sequências funcionam com strings também.

Algumas das mais usadas são enumerate() e len(). A função enumerate() retorna um objeto enumerate. Ele contém o índice e valor de todos os itens da string como pares. Isso pode ser útil para iteração.

Similarmente, len() retorna o comprimento (número de caracteres) da string.

str = 'cold'
# enumerate()
list_enumerate = list(enumerate(str))
print('list(enumerate(str)) = ', list_enumerate)
# contagem de caracteres
print('len(str) = ', len(str))

Quando executamos o programa acima, obtemos a seguinte saída:

list(enumerate(str)) = [(0, 'c'), (1, 'o'), (2, 'l'), (3, 'd')] len(str) = 4

Formatação de Strings em Python

Sequências de Escape

Se quisermos imprimir um texto como He said, "What's there?", não podemos usar aspas simples nem duplas. Isso resultará em SyntaxError pois o texto contém ambos os tipos de aspas.

>>> print("He said, "What's there?"")
...
SyntaxError: invalid syntax
>>> print('He said, "What's there?"')
...
SyntaxError: invalid syntax

Uma forma de contornar é usar aspas triplas. Alternativamente, podemos usar sequências de escape.

Uma sequência de escape começa com barra invertida e é interpretada diferentemente. Se usarmos aspas simples para representar uma string, todas as aspas simples dentro devem ser escapadas. O mesmo vale para aspas duplas. Veja como representar o texto acima.

# usando aspas triplas
print('''He said, "What's there?"''')
# escapando aspas simples
print('He said, "What\'s there?"')
# escapando aspas duplas
print("He said, \"What's there?\"")

Quando executamos o programa acima, obtemos a seguinte saída:

He said, "What's there?" He said, "What's there?" He said, "What's there?"

Aqui está a lista de todas as sequências de escape suportadas pelo Python.

Sequência de EscapeDescrição
\newlineBarra invertida e nova linha ignoradas
\\Barra invertida
\'Aspas simples
\"Aspas duplas
\aASCII Bell
\bASCII Backspace
\fASCII Formfeed
\nASCII Linefeed (nova linha)
\rASCII Carriage Return
\tASCII Horizontal Tab
\vASCII Vertical Tab
\oooCaractere com valor octal ooo
\xHHCaractere com valor hexadecimal HH

Alguns exemplos:

>>> print("C:\\Python32\\Lib")
C:\Python32\Lib
>>> print("This is printed\nin two lines")
This is printed
in two lines
>>> print("This is \x48\x45\x58 representation")
This is HEX representation

Raw String para Ignorar Sequências de Escape

Às vezes podemos desejar ignorar sequências de escape dentro de uma string. Para isso, colocamos r ou R antes da string. Isso implica que é uma raw string e qualquer sequência de escape dentro será ignorada.

>>> print("This is \x61 \ngood example")
This is a good example
>>> print(r"This is \x61 \ngood example")
This is \x61 \ngood example

O Método format() para Formatação de Strings

O método format() disponível no objeto string é muito versátil e poderoso na formatação. Strings de formato contêm chaves {} como placeholders ou campos de substituição que são substituídos.

Podemos usar argumentos posicionais ou por palavra-chave para especificar a ordem.

# Método format() de string Python
# ordem padrão (implícita)
default_order = "{}, {} and {}".format('John','Bill','Sean')
print('\n--- Default Order ---')
print(default_order)
# ordem usando argumento posicional
positional_order = "{1}, {0} and {2}".format('John','Bill','Sean')
print('\n--- Positional Order ---')
print(positional_order)
# ordem usando argumento keyword
keyword_order = "{s}, {b} and {j}".format(j='John',b='Bill',s='Sean')
print('\n--- Keyword Order ---')
print(keyword_order)

Quando executamos o programa acima, obtemos a seguinte saída:

--- Default Order --- John, Bill and Sean --- Positional Order --- Bill, John and Sean --- Keyword Order --- Sean, Bill and John

O método format() pode ter especificações de formato opcionais. Elas são separadas do nome do campo usando dois-pontos. Por exemplo, podemos alinhar à esquerda <, à direita > ou centralizar ^ uma string no espaço dado.

Também podemos formatar inteiros como binário, hexadecimal, etc. e floats podem ser arredondados ou exibidos em formato exponencial. Existem toneladas de formatações disponíveis com o método format().

>>> # formatando inteiros
>>> "Binary representation of {0} is {0:b}".format(12)
'Binary representation of 12 is 1100'
>>> # formatando floats
>>> "Exponent representation: {0:e}".format(1566.345)
'Exponent representation: 1.566345e+03'
>>> # arredondar
>>> "One third is: {0:.3f}".format(1/3)
'One third is: 0.333'
>>> # alinhamento de string
>>> "|{:<10}|{:^10}|{:>10}|".format('butter','bread','ham')
'|butter     |  bread   |       ham|'

Formatação Estilo Antigo

Podemos até formatar strings como o antigo estilo sprintf() usado em C. Usamos o operador % para isso.

>>> x = 12.3456789
>>> print('The value of x is %3.2f' % x)
The value of x is 12.35
>>> print('The value of x is %3.4f' % x)
The value of x is 12.3457

Métodos Comuns de Strings em Python

Existem numerosos métodos disponíveis no objeto string. O método format() mencionado acima é um deles. Alguns dos métodos comumente usados são lower(), upper(), join(), split(), find(), replace() etc. Aqui está uma lista completa de todos os métodos built-in para trabalhar com strings em Python.

>>> "PrOgRaMiZ".lower()
'programiz'
>>> "PrOgRaMiZ".upper()
'PROGRAMIZ'
>>> "This will split all words into a list".split()
['This', 'will', 'split', 'all', 'words', 'into', 'a', 'list']
>>> ' '.join(['This', 'will', 'join', 'all', 'words', 'into', 'a', 'string'])
'This will join all words into a string'
>>> 'Happy New Year'.find('ew')
7
>>> 'Happy New Year'.replace('Happy','Brilliant')
'Brilliant New Year'

python

  1. Dominando Strings em C#: Fundamentos, Operações e Técnicas Avançadas
  2. Dominando Dicionários em Python: Criação, Manipulação e Técnicas Avançadas
  3. Dominando Strings em Java: Criação, Métodos e Boas Práticas
  4. Dominando Representações String em Enums Java
  5. Domine Operações com Strings em Python: Replace, Join, Split, Reverse e Conversão de Case
  6. Dominando o Método strip() do Python: Guia Completo e Exemplos Práticos
  7. Domine o str.count() do Python: Como Contar Caracteres e Substrings com Exemplos
  8. Domine Strings format() em Python com Exemplos Claros
  9. Python len(): Guia Prático para Medir Comprimento de Objetos
  10. Domine o Método String.find() do Python: Sintaxe, Exemplos e Alternativas