Python Tutorial - Cordão de Tipo de Dados

  1. Criar Strings em Python
  2. Elementos de Acesso de String
  3. Operações de string Python
  4. Funções Incorporadas Aplicáveis a Strings
  5. Formatação de String Python
  6. A String format() Método

Vamos cobrir o tipo de dados Python String nesta secção.

Uma string é uma sequência de caracteres, representada por dados binários no computador. E em Python, uma string é uma coleção de caracteres unicode.

Informação

As strings Python são imutáveis.

Criar Strings em Python

Uma string pode ser criada usando aspas simples ou duplas. Uma string de várias linhas também pode ser criada usando aspas triplas.

x = "String of characters"
x = """Multiline
string"""

Elementos de Acesso de String

O operador de fatiamento [] é utilizado para acessar caracteres de strings. O índice começa a partir de 0 como outros tipos de dados Python.

>>> x = 'Python Programming'
>>> print('x[0] =', x[0])
'P'
>>> print('x[4:15] =', x[4:15])
'on Programm'
>>> x[4] = 'l'
TypeError: 'str' object does not support item assignment
Atenção

O índice deve ser um número inteiro, caso contrário, ocorrerá o TypeError.

Indexação negativa

É permitido o uso de índices negativos para acessar caracteres na string. Por exemplo, o índice -1 refere-se ao último caractere. Da mesma forma, índice -2 refere-se ao segundo último caractere.

>>> s = "Python"
>>> print(s[-1])
'n'
>>> print(s[-2])
'o'
>>> print(s[-3])
'h'

Apagar Caracteres de uma String

Como as strings são imutáveis, portanto, os caracteres de uma string não podem ser apagados. Mas você pode atribuir uma nova string ao mesmo nome. Isto é demonstrado no código abaixo:

>>> s = 'Python'
>>> s = 'Program'
>>> s
'Program'

A string inteira pode ser apagada utilizando a palavra-chave del:

>>> del s

Operações de string Python

Há uma série de operações que podem ser realizadas em strings; algumas delas são as seguintes:

Concatenar duas ou mais strings

Duas ou mais strings podem ser concatenadas utilizando o operador +.

>>> s1 = 'Python '
>>> s2 = 'Programming'
>>> print(s1 + s2)
'Python Programming'

Se você escrever duas seqüências de caracteres juntos, ele irá concatenar as seqüências de caracteres como o operador + faz:

>>> print('Python ' 'Programming')
'Python Programming'

Parênteses também podem ser usados para concatenar duas strings quando as strings estão em múltiplas linhas.

>>> s = ('Python '
     'Programming')
>>> s
'Pyhton Programming'

Iterar através de strings

Você pode iterar através de uma lista utilizando o loop for:

s = 'Python'
for i in s:
    print(i)
P
y
t
h
o
n

Verificação de associação em string

A palavra-chave in é utilizada para verificar a existência de um substrato em uma string.

>>> s = 'Python'
>>> print('a' in s)
False
>>> print('o' in s)
True

Funções Incorporadas Aplicáveis a Strings

As funções que são aplicadas a outros tipos de sequências também podem ser aplicáveis a strings. As funções comumente utilizadas são len() para encontrar o número de caracteres em uma string, e enumerate() que retorna um objeto contendo índice e valor de elementos na string como um par.

Formatação de String Python

Sequência de fuga

Sequências de fuga são usadas quando você quer imprimir os símbolos especiais (que tem significados especiais em Python) no fluxo de saída. Por exemplo, se você quiser imprimir:

James asked, "Do you know Andrew's place?"

Aqui você não pode utilizar aspas simples ou duplas porque o texto contém as duas aspas. Se você tentar colocar essas aspas dentro de aspas simples ou duplas, você terá SyntaxError.

>>> print("James asked, "Do you know Andrew's place?"")
SyntaxError: invalid syntax
>>> print('James asked, "Do you know Andrew's place?"')	  
SyntaxError: invalid syntax

A solução para este problema é que você utilize aspas triplas ou seqüências de escape. Em Python, uma seqüência de escape começa a partir de uma barra invertida. Uma contrabarra é uma instrução para o intérprete.

Se você estiver usando aspas simples na declaração de impressão, então todas as aspas simples do texto devem ser escapadas. E da mesma forma, citações duplas do texto devem ser escapadas se você estiver usando citações duplas para representar uma string.

#using triple quotation marks
print('''James asked, "Do you know Andrew's place?"''')

#escaping single quotes
print('James asked, "Do you know Andrew\'s place?"')

#escaping double quotes
print("James asked, \"Do you know Andrew's place?\"")

Considere a seguinte tabela na qual são descritas as sequências de escape de Python:

Sequência de fuga Descrição
\\ barra invertida de fuga
\' escapa a citações simples
\" escapa a citações duplas
\a um alerta ou sino em ASCII
\b gera um backspace
\f gera o Formfeed
\n gera uma nova linha.
\r código de fim de linha
\t gera uma aba horizontal
\v gera uma aba vertical
ooo octal character ooo
\xHH carácter hexadecimal HH
>>> print("C:\\User\\Python36-32\\Lib")
C:\User\Python36-32\Lib
    
>>> print("First Line\nSecond Line")
First Line
Second Line

String Bruta r para Ignorar Sequência de Fuga

Você pode ignorar a seqüência de escape em uma string, tornando-a uma string bruta que é indicada por r ou R antes da string.

Em uma seqüência de escape em bruto são ignoradas as seqüências de escape. Veja o exemplo a seguir:

#without r
>>> print("C:\\User\\Python36-32\\Lib")
C:\User\Python36-32\Lib

#with r  
>>> print(r"C:\\User\\Python36-32\\Lib")
C:\\User\\Python36-32\\Lib

Você pode ver aqui que a seqüência de escape é ignorada.

A String format() Método

O método format() é uma ferramenta poderosa para formatar strings. Nas strings formatadas, você tem os espaços reservados {} que são substituídos pelo método format().

Os argumentos posicionais e de palavras-chave são utilizados para especificar a ordem da substituição.

#default placeholder
>>> s1 = "{}, {} and {}".format('Bread', 'Butter', 'Chocolate')
>>> print(s1)
'Bread, Butter and Chocolate'

#positional arguments
>>> s2 = "{1}, {2} and {0}".format('Bread', 'Butter', 'Chocolate')	  
>>> print(s2)
'Butter, Chocolate and Bread'

#keyword arguments
>>> s3 = "{a}, {x} and {c}".format(x = 'Bread', c = 'Butter', a = 'Chocolate')	  
>>> print(s3)
'Chocolate, Bread and Butter'