Python Tutorial - Cordão de Tipo de Dados
- Criar Strings em Python
- Elementos de Acesso de String
- Operações de string Python
- Funções Incorporadas Aplicáveis a Strings
- Formatação de String Python
-
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
.
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
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'
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook