Buscar

Manipulação de Strings

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 9 páginas

Prévia do material em texto

COMPUTAÇÃO I
Período 2020-2, turmas EN1 e EPT
Professor: Aloísio Pina 
Caracteres
Até hoje só trabalhamos com dados numéricos. 
Agora veremos como trabalhar com dados textuais.
Strings
São sequências de caracteres entre aspas, simples ou duplas.
Exemplos:
isso é uma string 
isso também é uma string 
Uma característica interessante das strings é que podemos trabalhar com elas de forma
semelhante a listas.
Acessando um caractere da string
Cada caractere da string é também uma string, e pode ser acessado através de seu índice
entre colchetes. 
Os índices da string começam sempre em zero.
Exemplo:
'A'
In [1]: s = "isso é uma string" 
In [2]: r = 'isso também é uma string' 
In [3]: print(s) 
print(r) 
In [4]: s = "FRASE" 
In [ ]: s = " F R A S E" 
 | | | | | 
 0 1 2 3 4 
In [5]: s[2] 
Out[5]:
'E'
--------------------------------------------------------------------------- 
IndexError Traceback (most recent call last) 
<ipython-input-7-b5dece75d686> in <module> 
----> 1 s[5] 
IndexError: string index out of range
Cada caractere da string pode ser acessado também através de índices negativos,
começando no final da string. 
Os índices negativos da string começam sempre em -1 (não começam em zero porque
dessa forma o índice zero marcaria duas posições distintas na string).
Exemplo:
'E'
'A'
'F'
Observação: Podemos concluir que o primeiro caractere da string está sempre no índice
zero e o último caractere da string está sempre no índice -1.
Funções intrínsecas úteis
len(s): retorna o número de caracteres da string s ("tamanho" da string) 
list(s): retorna uma lista de todos caracteres da string s 
str(x): retorna x convertido para string 
Exemplos:
5
In [6]: s[4] 
Out[6]:
In [7]: s[5] 
In [ ]: s = " F R A S E" 
 | | | | | 
 -5 -4 -3 -2 -1 
In [8]: s[-1] 
Out[8]:
In [9]: s[-3] 
Out[9]:
In [10]: s[-5] 
Out[10]:
In [11]: s = "FRASE" 
In [12]: len(s) 
Out[12]:
list(s) 
['F', 'R', 'A', 'S', 'E']
'25'
Acessando todos os caracteres da string
Eventualmente pode ser interessante acessar todos os caracteres da string, um de cada
vez. 
Isso é feito de forma iterativa usando um comando de repetição. 
Se a variável de controle do comando de repetição for usada como índice na string, a
cada iteração acessaremos um dos caracteres. 
Considerando que a string tem n caracteres e os índices começam em zero então o índice
final é n-1. Podemos determinar n com a função len, portanto para acessar todos os
caracteres de uma string s temos: 
Com while:
ou:
Com for:
ou:
Exemplo: imprimir na tela todos os caracteres da string s:
F 
R 
A 
S 
E 
In [13]:
Out[13]:
In [14]: str(25) 
Out[14]:
In [ ]: i = 0 
while i <= len(s)-1: 
 comandos com s[i] 
 i = i + 1 
In [ ]: i = 0 
while i < len(s): 
 comandos usando s[i] 
 i = i + 1 
In [ ]: for i in range(len(s)): 
 comandos usando s[i] 
In [ ]: for c in s: 
 comandos usando c 
In [15]: i = 0 
while i < len(s): 
 print(s[i]) 
 i = i + 1 
F 
R 
A 
S 
E 
Operações básicas em strings
1) Concatenação: ligar o final de uma string ao início de outra string, formando uma nova
string, usando o operador de concatenação +. 
Exemplo:
'ferrovia'
2) Repetição: repetir os caracteres de uma string um determinado número de vezes,
formando uma nova string, usando o operador de repetição *. 
Exemplo:
'HUEHUEHUE'
'HUEHUEHUE'
Substrings
Podemos definir substrings de uma string, especificando os índices de início e fim: 
s[ início : fim ] é a substring que contém todos os caracteres de s entre os índices "início"
e "fim".
Exemplo:
'RA'
Obs.: Se o índice de início não for especificado, é o início da string; se o índice de fim não
for especificado é o fim da string. 
Exemplo:
In [16]: for c in s: 
 print(c) 
In [17]: "ferro" + "via" 
Out[17]:
In [18]: "HUE" * 3 
Out[18]:
In [19]: 3 * "HUE" 
Out[19]:
In [20]: s = "FRASE" 
s[1:3] 
Out[20]:
In [ ]: s = " F |R A |S E" 
 | | | | | 
 0 1 2 3 4 
'FRA'
'ASE'
'FRASE'
Alteração de strings
Ao contrário de listas, strings são imutáveis, portanto não podemos fazer atribuição direta
nem substituição em strings.
Exemplo:
--------------------------------------------------------------------------- 
TypeError Traceback (most recent call last) 
<ipython-input-24-fed5a321187a> in <module> 
 1 s = "FRASE" 
----> 2 s[0] = 'C' 
TypeError: 'str' object does not support item assignment
--------------------------------------------------------------------------- 
TypeError Traceback (most recent call last) 
<ipython-input-25-3d8081795c9d> in <module> 
 1 s = "FRASE" 
----> 2 s[1:4] = "AGOT" 
TypeError: 'str' object does not support item assignment
No entanto, podemos alterar o valor de uma variável, susbstituindo uma string por outra
nova criada a a partir de concatenação. 
Exemplo:
'CRASE'
'FAGOTE'
In [21]: s[:3] 
Out[21]:
In [22]: s[2:] 
Out[22]:
In [23]: s[:] 
Out[23]:
In [24]: s = "FRASE" 
s[0] = 'C' 
In [25]: s = "FRASE" 
s[1:4] = "AGOT" 
In [26]: s = "FRASE" 
s = 'C' + s[1:] 
s 
Out[26]:
In [27]: s = "FRASE" 
s = s[:1] + "AGOT" + s[4:] 
s 
Out[27]:
Comparação de strings
Uma das operações mais comuns entre strings é a comparação. 
Isso é feito usando-se os operadores relacionais que já conhecemos: ==, !=, >, <, >=, <=. 
Exemplo:
False
Obs.: o que está sendo comparado não é o tamanho da string. 
Exemplo:
True
Obs.: a comparação é "alfabética". 
Exemplo:
True
Obs.: as letras minúsculas são diferentes das maiúsculas. 
Exemplo:
True
Obs.: todas as letras maiúsculas vem antes das minúsculas. 
Exemplo:
False
True
Isso acontece porque todos os caracteres possíveis estão listados em uma tabela e a
comparação é feita considerando-se a posição dos caracteres na tabela. 
Existem duas funções intrínsecas usadas para acesso a tal tabela: 
chr(i): retorna o caractere na posição i da tabela
ord(c): retorna o índice do caractere c na tabela
In [28]: "A" == "B" 
Out[28]:
In [29]: "F" > "ABCDE" 
Out[29]:
In [30]: "A" <= "B" 
Out[30]:
In [31]: "A" != "a" 
Out[31]:
In [32]: "a" < "A" 
Out[32]:
In [33]: "Z" < "a" 
Out[33]:
Exemplos:
'Z'
97
Operador in
Serve para determinar se uma dada string é ou não substring de outra. O resultado da
operação é True se for, ou False se não for.
Exemplo:
True
False
No ex. anterior, o resultado é False porque embora 'R' e 'S' estejam em s, não são
contíguos.
False
No ex. anterior, o resultado é False porque embora 'A' e 'R' estejam em s e sejam
contíguos, não estão na mesma ordem.
Caracteres especiais
Iniciam com \ (não confundir com /, operador de divisão).
'\n': final de linha 
'\t': tabulação 
'\\': caractere \
Exemplos:
uma linha 
outra linha 
In [34]: chr(90) 
Out[34]:
In [35]: ord('a') 
Out[35]:
In [36]: s = "FRASE" 
 
"RAS" in s 
Out[36]:
In [37]: "RS" in s 
Out[37]:
In [38]: "AR" in s 
Out[38]:
In [39]: print("uma linha\noutra linha") 
In [40]: print("Tabulações\tseparam\tpalavras\tem\tcolunas") 
Tabulações separam palavras em colunas 
1 2 3 4 5 6 7 
\ 
 File "<ipython-input-42-dff1232de400>", line 1 
 print("\") 
 ^ 
SyntaxError: EOL while scanning string literal 
Métodos úteis de strings
s.find(sub) -> retorna o índice da primeira ocorrência da substring sub em s
s.count(sub) -> retorna o número de ocorrências não sobrepostas da substring sub em s
s.lower() -> retorna s em minúsculas
s.upper() -> retorna s em maiúsculas
s.replace(old, new, n) -> retorna s com as n primeiras ocorrências de old susbstituídas por
new (todas, se n não for especificado)
s.split(sep) -> retorna uma lista com todas as strings obtidas "quebrando" s nas
ocorrências de sep
s.join(L) -> retorna uma string composta pela concatenação de todas as strings na lista L,
intercaladas por s 
Obs.: Como as strings são imutáveis, todos os métodos retornam um valor. 
Obs.: Para saber todos os métodos de listas, basta usar:help(str)
Exemplos:
20
2
'o teu chamego é meu xodó, o teu xodó me faz um bem.'
print("1\t2\t3\t4\t5\t6\t7") 
In [41]: print("\\") 
In [42]: print("\") 
In [43]: s = "O teu chamego é meu xodó, o teu xodó me faz um bem." 
In [44]: s.find('xodó') 
Out[44]:
In [45]: s.count('xodó') 
Out[45]:
In [46]: s.lower() 
Out[46]:
'O TEU CHAMEGO É MEU XODÓ, O TEU XODÓ ME FAZ UM BEM.'
'O teu chamego é meu xabú, o teu xodó me faz um bem.'
'O teu chamego é meu xabú, o teu xabú me faz um bem.'
['O teu cha', 'go é ', 'u xodó, o teu xodó ', ' faz um bem.']
'A aula chegou ao fim.'
In [47]: s.upper() 
Out[47]:
In [48]: s.replace('xodó', 'xabú', 1) 
Out[48]:
In [49]: s.replace('xodó', 'xabú') 
Out[49]:
In [50]: s.split("me") 
Out[50]:
In [51]: L = ["A", "aula", "chegou", "ao", "fim."] 
s = ' ' 
 
s.join(L) 
Out[51]:

Mais conteúdos dessa disciplina