Você está na página 1de 19

Aula 3: Strings

PROGRAMAÇÃO DE COMPUTADORES II

Professor: Mayksoel M. de Freitas

Universidade Federal do Oeste da Bahia - UFOB


Centro das Ciências Exatas e das Tecnologias - CCET

2020-2

Universidade Federal do Oeste da Bahia (UFOB) Programação de Computadores II 2020-2 1 / 19


Variáveis string
Podemos imaginar uma string como uma lista (embora o tipo string seja
diferente do tipo lista), onde cada letra, número, caractere especial ou
espaço em branco (caracteres em geral) ocupa uma posição;
nome = ’Maria Silva’

Os caracteres de uma string podem ser acessados pela sua posição (ín-
dice);
nome = ’Maria Silva’
print(nome[6]) # S

Diferentemente das listas, o conteúdo de uma string não pode ser alte-
rado (são sequências imutáveis).
idade = ’Eu tenho 31 anos’
idade[10] = ’2’
# TypeError: ’str’ object does not support item assignment

Universidade Federal do Oeste da Bahia (UFOB) Programação de Computadores II 2020-2 2 / 19


Comparando strings
Os Operadores Relacionais também podem ser utilizados para comparar
strings!

Exemplo
a = ’a’ < ’b’ # True
b = ’b’ > ’z’ # False
c = ’e’ == ’e’ # True
d = ’e’ != ’E’ # True
e = ’a’ > ’A’ # True
f = ’arara’ < ’vaca’ # True
g = ’boi’ > ’zebra’ # False
h = ’arara’ < ’Vaca’ # False
i = ’boi’ > ’Zebra’ # True

Essa comparação utiliza o conceito de ordem alfabética;


Letras maiúsculas “são menores que” letras minúsculas;
A comparação é baseada no número do caractere na tabela ASCII.
Universidade Federal do Oeste da Bahia (UFOB) Programação de Computadores II 2020-2 3 / 19
A Tabela ASCII
O termo ASCII é um acrônimo de American Standard Code for Information
Interchange que numa tradução livre, seria, “Código Padrão Americano para
o Intercâmbio de Informação".

Universidade Federal do Oeste da Bahia (UFOB) Programação de Computadores II 2020-2 4 / 19


A Tabela ASCII
O Python disponibiliza duas funções que são bastante uteis quando estamos
trabalhando com o sistema ASCII:

ord(): Recebe um caractere como parâmetro e retorna o código ASCII do


mesmo.
Exemplo
x = ord(’A’) # 65
y = ord(’Z’) # 90
a = ord(’a’) # 97
b = ord(’z’) # 122

chr(): Recebe o código ASCII de um caractere retorna o caractere.


Exemplo
i = chr(65) # ’A’
j = chr(90) # ’Z’
k = chr(97) # ’a’
w = chr(122) # ’z’

Universidade Federal do Oeste da Bahia (UFOB) Programação de Computadores II 2020-2 5 / 19


Percorrendo uma string
Strings podem ser “percorridas” utilizando-se estruturas de repetição.

Exemplo 1: Contar as letras r (ou R) de uma frase


s = input(’Dgite uma frase: ’)
c = 0
for i in s:
if i==’r’ or i==’R’:
c += 1
print(c)

Exemplo 2: Testar se uma palvra é um palíndromo


def Palindromo(s):
c = len(s)
i,j = 0,c-1
while i < j:
if s[i] != s[j]:
return False
i += 1
j = c-i-1
return True
Universidade Federal do Oeste da Bahia (UFOB) Programação de Computadores II 2020-2 6 / 19
Operações com strings
Algumas funções e operadores que atuam sobre listas podem ser usados em
strings.
Concatenando strings: +

Exemplo
a = ’Ana ’
b = ’Clara’
c = a + b # Ana Clara

Comprimento de strings: a função len()

Exemplo
bandeira = ’Ordem e Progresso!’
c = len(bandeira)
print(c) # 18

Universidade Federal do Oeste da Bahia (UFOB) Programação de Computadores II 2020-2 7 / 19


Operações com strings
Procurando uma substring na string: in e not in
Retorna True ou False.

Exemplo
ufob = ’Universidade Federal do Oeste da Bahia’
a = ’Oeste’ in ufob # True
b = ’da Paraíba’ in ufob # False
c = ’Estadual’not in ufob # True
d = ’Bahia’not in ufob # False

Fatiamento de strings: :

Exemplo
capital = ’A capital do Brasil é Brasília.’
a = capital[13:19] # Brasil
b = capital[22:] # Brasília.
c = capital[:9] # A capital
d = capital[2:-12] # capital do Brasil

Universidade Federal do Oeste da Bahia (UFOB) Programação de Computadores II 2020-2 8 / 19


Alteração do conteúdo de variáveis strings

Embora não possamos alterar o conteúdo de uma string, podemos alterar a


string que é armazenada numa determinada variável!

Exemplo 1: Converter uma string para maiúscula


def ConverterMaiúscula(s):
m = ’’
for i in s:
if 97 <= ord(i) <= 122:
I = chr(ord(i)-32)
m += I
else:
m += i
return m
s = input(’Digite uma palavra: ’)
s = ConverterMaiúscula(s)
print(s)

Universidade Federal do Oeste da Bahia (UFOB) Programação de Computadores II 2020-2 9 / 19


Convertendo uma string em Lista
Se quisermos trabalhar caractere a caractere com uma string alterando seu
conteúdo devemos primeiramente transformá-la em uma lista. Assim, pode-
remos alterar o conteúdo da lista. Finalmente, convertemos novamente a lista
alterada para string.
A função list() recebe uma string e retorna uma lista, onde cada ele-
mento é um caractere da string.
Já método join() faz a operação inversa, recebe uma lista e retorna uma
string com os elementos da lista.

Exemplo
idade = ’31 anos’
L = list(idade)
print(L) # [’3’,’1’,’ ’,’a’,’n’,’o’,’s’]
L[1] = ’2’
print(L) # [’3’,’2’,’ ’,’a’,’n’,’o’,’s’]
idade =’’.join(L)
print(idade) # 32 anos

Universidade Federal do Oeste da Bahia (UFOB) Programação de Computadores II 2020-2 10 / 19


Strings maiúsculas e minúsculas
Os métodos upper() e lower() retornam, respectivamente, a string com todas
as letras maiúsculas e minúsculas.
A string original não é modificada!

Exemplo
s = ’João da Silva’
a1 = s.upper() # JOÃO DA SILVA
a2 = s.lower() # joão da silva

Quando realizamos comparações, letras maiúsculas e minúsculas são dife-


rentes. Podemos combinar os métodos lower() e upper() com os operadores
in e not in para ignorar esse tipo de diferença.
Exemplo
s = ’Universidade do Estado do Rio de Janeiro’
a = ’rio’ in s.lower() # True
b = ’ESTADO’ in s.upper() # True
c = ’bahia’ not in s.lower() # True
d = ’UNIVERSIDADE’ not in s.upper() # False
Universidade Federal do Oeste da Bahia (UFOB) Programação de Computadores II 2020-2 11 / 19
Strings maiúsculas e minúsculas
O método capitalize() retorna a string com o primeiro caractere em maiús-
cula, e o resto em minúsculas.
Exemplo
s = ’brasil’
b = s.capitalize()
print(s) # brasil
print(b) # Brasil

O método title() retorna a string com o primeiro caractere de cada palavra em


maiúscula, e o resto em minúsculas.
Exemplo
s = ’lingugem python.’
b = s.title()
print(s) # lingugem python.
print(b) # Lingugem Python.

Obs: A string original não é modificada!


Universidade Federal do Oeste da Bahia (UFOB) Programação de Computadores II 2020-2 12 / 19
Pesquisa de strings
Para pesquisar uma substring s na string e obter a posição da primeira ocor-
rência, podemos utilizar o método find().
find(s,[início],[fim]) : O método retornará o índice do primeiro caractere
da string procurada, caso a string seja encontrada, e −1 caso contrário.

Exemplo
s = ’Um tigre, dois tigres, três tigres.’
a = s.find(’tigre’) # 3
b = s.find(’tigre’,10) # 15
c = s.find(’tigre’,21,28) # -1

O método index() funciona exatamente com o método find(), porém ocorre


um erro quando a substring não é encontrada.
Exemplo
s = ’Um tigre, dois tigres, três tigres.’
a = s.index(’tigre’) # 3
b = s.index(’tigre’,10) # 15
c = s.index(’tigre’,21,28) # ValueError: substring not found
Universidade Federal do Oeste da Bahia (UFOB) Programação de Computadores II 2020-2 13 / 19
Contagem e Substituição em strings
Para contar as ocorrências de uma substring s na string, podemos utilizar o
método count().
count(s,[início],[fim])

Exemplo
s = ’Um tigre, dois tigres, três tigres.’
a = s.count(’tigre’) # 3
b = s.count(’tigre’,10) # 2
c = s.count(’tigre’,21,28) # 0

O método replace() substitui trechos old de uma string por trechos new. O
parâmetro opcional qtd que limita quantas vezes se realizá a operação.
replace(old,new,[qtd])

Exemplo
s = ’RJ SP BA RJ RJ’
a = s.replace(’RJ’,’MG’) # MG SP BA MG MG
b = s.replace(’RJ’,’MG’,1) # MG SP BA RJ RJ
c = s.replace(’RJ’,’MG’,5) # MG SP BA MG MG
Universidade Federal do Oeste da Bahia (UFOB) Programação de Computadores II 2020-2 14 / 19
Quebra de strings
O método split() quebra uma string a partir de um caractere passado como
parâmetro, retornando uma lista com as substrings separadas.
Observe que o caractere utilizado para separar a string é descartado!

Exemplo
data = ’28/01/2019’
L = data.split(’/’) # [’28’, ’01’, ’2019’]
d,m,a = data.split(’/’) # d = 28, m = 01, a = 2019

O método partition() quebra uma string a partir de uma substring separador


passada como parâmetro, dividindo-a em três: antes do separador, separa-
dor e depois do separador.
Exemplo
s = ’Um tigre, dois tigres, três tigres.’
a,b,c = s.partition(’dois tigres,’)
print(a) # Um tigre,
print(b) # dois tigres,
print(c) # três tigres.
Universidade Federal do Oeste da Bahia (UFOB) Programação de Computadores II 2020-2 15 / 19
Exclusão de Caracteres no Início e no Fim de strings
str.strip([chars]): Retorna uma cópia da string com os caracteres iniciais e
finais removidos. O argumento chars (opcional) é uma string que especifica
o conjunto de caracteres a ser removido. Se omitido, assume como padrão
a remoção de espaços em branco. O argumento chars não é um prefixo ou
sufixo; em vez disso, todas as combinações de seus valores são removidas!

str.rstrip([chars]): Caracteres finais (à direita) são removidos;


str.lstrip([chars]): Caracteres iniciais (à esquerda) são removidos.

Exemplo
a = ’-UFOB!’
a = a.strip(’-!’) # ’UFOB’
b = ’ Programação de Computadores ’
b = b.strip() # ’Programação de Computadores’
c = ’www.python.org’
c = c.strip(’gwr.o’) # ’python’
d = ’...Engenharia...’
x = d.rstrip(’.’) # ’...Engenharia’
y = d.lstrip(’.’) # ’Engenharia...’
Universidade Federal do Oeste da Bahia (UFOB) Programação de Computadores II 2020-2 16 / 19
Validação por tipo de conteúdo da strings
Strings podem ter seu conteúdo analisado e verificado utilizando-se métodos
especiais. Esse métodos verificam se todos os caracteres são letras, números
ou uma combinação deles.
isnumeric(): Retorna True se a string não estiver vazia e todos os ca-
racteres forem números.
isalpha(): Retorna True se a string não estiver vazia e todos os caracte-
res forem letras (maísculas ou minúsculas, acentuadas ou não).
isalnum(): Retorna True se a string não estiver vazia e todos os carac-
teres forem letras e/ou números.

Exemplo
s1 = ’135’
a = s1.isnumeric() # True
s2 = ’Alô mundo!’
b = s2.isalpha() # False
s3 = ’S10’
c = s3.isalnum() # True

Universidade Federal do Oeste da Bahia (UFOB) Programação de Computadores II 2020-2 17 / 19


Exercícios

1) Faça uma função que receba uma string com uma data no formato
“dd/mm/aaaa” e imprima esta data com o nome do mês por extenso.
Ex: 25/10/2011 ⇒ 25 de Outubro de 2011.

2) Faça uma função que receba uma string A (uma palavra) e retorne uma
string com os caracteres na ordem inversa (de trás para fente) com letras
maiúsculas.

3) Um anagrama é uma palavra que é feita a partir da transposição das letras


de outra palavra ou frase. Faça uma função que receba, por parâmetro,
duas strings e verifique se uma é um anagrama da outra (retorne True
ou False). Ignore os espaços em branco. O programa deve considerar
letras maiúsculas e minúsculas como sendo caracteres iguais. Iracema ⇒
America.

Universidade Federal do Oeste da Bahia (UFOB) Programação de Computadores II 2020-2 18 / 19


Terminou!!!

Obrigado pela atenção!


Universidade Federal do Oeste da Bahia (UFOB) Programação de Computadores II 2020-2 19 / 19

Você também pode gostar