Você está na página 1de 37

Fundamentos da Computação

Aula 12 – Programação em Python –


Operações Sobre String
Profa. Alana Oliveira
www.ecp.ufma.br/alana
alana@ecp.ufma.br
Se não entender, pergunte!

Profa. Alana Oliveira, ECP / UFMA


2
Conteúdo
• Strings
• Acessando os caracteres em uma String
• Acessando parte em uma String (slicing)
• Manipulação de Strings
• Conversão maiúscula / minúscula
• Concatenação (Operador +)
• Cópias repetidas (Operador *)
• Separação (split())
• Busca (find())
• Substituição (replace())
• Iteração

3
String

• Uma string (cordão, em Inglês) é uma


cadeia de caracteres

• Uma cadeia de caracteres é uma


sequência de símbolos, tais como letras,
números, sinais de pontuação, etc., que
formam textos em geral.

4
String
• O início e o fim de uma string são indicados por
aspas duplas (") ou aspas simples ('), de modo a
separar o conteúdo da string do restante do
texto do programa:

texto = "Aprendendo Python"

texto = 'Aprendendo Python'

• Também se pode usar espaços em uma string


de caracteres

5
String

Se quiser incluir o símbolo de aspas


(simples ou duplas) em uma string, use a
expressão \“ ou \’ . Ou use “ e ‘ aninhados:

bairro= "Ponta D'areia"

bairro= 'Ponta D\'areia'

6
String
Os caracteres de uma string são codificados no
padrão ASCII. Cada caractere do teclado é
representado por um código numérico:

ord() Retorna o código ASCII do


caractere informado

Retorna o caractere ASCII


chr() correspondente ao código

7
Função ord()

• Retorna o código ASCII do caractere


passado como parâmetro:

Exemplo Saída
s1 = "Python" P 80
y 121
for c in s1: t 116
print(c, ord(c)) h 104
o 111
n 110

8
Função chr()

• Imprime os caracteres ASCII


de 32 a 127:

Exemplo Saída
s1 = "Python" 32 42 * 53 5 ...
33 ! 43 + 54 6 ...
for i in range(32,128): 34 " 44 , 55 7 120 x
print(i, chr(i)) 35 # 45 - 56 8 121 y
36 $ 46 . 57 9 122 z
37 % 47 / 58 : 123 {
38 & 48 0 59 ; 124 |
39 ' 49 1 60 < 125 }
40 ( 50 2 61 = 126 ~
41 ) 51 3 62 > 127
9
Acesso a caracteres

• Strings são indexadas, iniciando por 0:

0 1 2 3 4 5

P y t h o n
str1
str1[0] # primeiro caracter: 'P'
str1[5] # ultimo caracter: 'n'
str1[6] # ERRO!!
10
Acesso a caracteres

• Índices também podem ser negativos, de


trás para frente:
0 1 2 3 4 5

P y t h o n
-6 -5 -4 -3 -2 -1
str1[-1] # ultimo caracter: 'n'
str1[-6] # primeiro caracter: 'P'
str1[-7] # ERRO!!
11
Acesso a partes da string (slicing)

0 1 2 3 4 5

P y t h o n
-6 -5 -4 -3 -2 -1
str1

str1[0:2] # posição 0 a 1: 'Py’


str1[:2] # posição inicial até a 1:'Py’
str1[2:6] # posição 2 a 5: 'thon’
str1[2:] # carac. da posição 2 até o final: 'thon’
str[:-2] # exclui os dois últimos caracteres: 'Pyth'

12
Manipulação de String

upper() lower()
• converte o conteúdo da • converte a string para
string para letras letras minúsculas:
maiúsculas:

>>> s = “Exercicio” >>> s = “BICT/UFMA”


>>> s.upper() >>> s.lower()
EXERCICIO bict/ufma

13
Manipulação de String

Operador “+” len()


• Concatena duas ou • quantidade de caracteres
mais strings da string:

>>> s1 = “Python” >>> s = “BICT/UFMA”


>>> s2 = “3” >>> len(s)
>>> s1 + “ ” + s2 9
‘Python 3’

14
Manipulação de String

Operador “*” find


• Faz cópias repetidas da • retorna o índice da 1ª
string: ocorrência de uma string
dentro da outra:

>>> s = “UFMA” >>> nome='José da Silva’


>>> s*3 >>> nome.find(‘s’)
‘UFMAUFMAUFMA’ 2
>>> (s+ ‘ ”)*3 >>> nome.find(‘da’)
5
‘UFMA UFMA UFMA’

15
Manipulação de String

in in
• Percorre uma string • verifica se uma string é
(iteração): substring de outra

s = 'algoritmos' >>> nome='José da Silva’


>>>'da' in nome
for x in s: True
print(x)
>>> ‘de’ in nome
False

16
Manipulação de String

in in
• Percorre uma string • verifica se uma string é
(iteração): substring de outra

s = 'algoritmos' >>> nome='José da Silva’


>>>'da' in nome
for x in s: True
print(x)
>>> ‘de’ in nome
False

17
Manipulação de String
split()
• A função split retorna os caracteres
antes da primeira ocorrência de um
caractere separador em uma string de
entrada.

>>> str1 = 'Fulano de Tal'


>>> str1.split() # ['Fulano', 'de', 'Tal']
>>> str1.split(' ') # ['Fulano', 'de', 'Tal']
>>> str1.split(',') # ['Fulano de Tal']
>>>'1,2,3'.split(',') # ['1', '2', '3']
Obs: O caractere separador default é o espaço em branco.
18
Manipulação de String
find()
• A função find retorna o menor índice da ocorrência da
string2 na string1 .
string1 = 'Fulano de Tal'
string2 = 'de'
string1.find(string2) # 7

• Para checar se a string2 está na string1, utilize o


operador in.
'de' in 'Fulano de Tal' # True

19
Manipulação de String
replace()
• A função replace realiza uma operação padrão
de localizar e substituir.

• substitui strings para criar uma nova string

S1 = 'um aluno, dois alunos, tres alunos.'


S2 = S1.replace('aluno','estudante')
print(S1)
print(S2)

20
Manipulação de String
replace()
• A função replace realiza uma operação padrão
de localizar e substituir.

• substitui strings para criar uma nova string

str1 = 'Na minha família há vários médicos. Meu


avô, meu pai, minha mãe e eu somos médicos.'
str2 = 'médicos'
str3 = 'engenheiros'
str1.replace(str2,str3)

21
Iteração
USANDO FOR

• Percorre cada caractere uma string

S = 'algoritmos'

for x in S:
print(x)

22
Problema 1
Contagem de ocorrência

• A partir de um texto fornecido pelo usuário,


conte o número de caracteres e quantos deles
são vogais.

Profa. Alana Oliveira, ECP / UFMA


23
Problema 1
Contagem de ocorrência
# Inicialização do contador de vogais
cont = 0

# Leitura do texto a ser analisado


texto = input("Digite o texto: ").upper()

# Percorre a string contando as vogais


for ch in texto:
if ch == "A" or ch == "E" or ch == "I" or ch
== "O" or ch == "U":
cont = cont + 1

# Impressao das informacoes


print(len(texto))
print(cont)

Profa. Alana Oliveira, ECP / UFMA


24
Problema 1
Contagem de ocorrência
# Inicialização do contador de vogais
cont = 0

# Leitura do texto a ser analisado


texto = input("Digite o texto: ").upper()

# Percorre a string contando as vogais


for ch in texto:
if ch in ("A" ,"E" ,"I" ,"O”,"U”):
cont = cont + 1

# Impressao das informacoes


print(len(texto))
print(cont)

Profa. Alana Oliveira, ECP / UFMA


25
Conteúdo – Strings

Introdução
Operações com strings
Função ’is’ para string
Conversão de strings p/ números
Alguns Problemas

Profa. Alana Oliveira, ECP / UFMA


26
Conversão de strings para números

• Converte números em
str() strings

• Converte strings em
int() números inteiros

• Converte strings em
float() números reais

Profa. Alana Oliveira, ECP / UFMA


27
Conversão de strings para números

str1 = '123'
num1 = 123

str(num1) # '123'
int(str1) # 123
float(str1) # 123.0

int(str1) + num1 # 246


float(str1) + num1 # 246.0
str(num1) + str1 # '123123'

str1 + num1 # ERRO

Profa. Alana Oliveira, ECP / UFMA


28
Conteúdo – Strings

Introdução
Operações com strings
Função ’is’ para string
Conversão de strings p/ números
Alguns Problemas

Profa. Alana Oliveira, ECP / UFMA


29
Problema 1
:: Separação de string

• Elabore um script que leia o nome


completo de uma pessoa e imprima o
prenome e o sobrenome.

Profa. Alana Oliveira, ECP / UFMA


30
Separação de string
:: Script em Python
# Leitura do nome
nome = input("Informe o nome: ").split(' ')

# Imprime prenome
print('Prenome:', nome[0])

# Imprime primeiro sobrenome


print('Sobrenome:', nome[1])

# Imprime lista de sobrenomes


print('Sobrenome:', nome[1:])

# Imprime ultimo sobrenome


print('Sobrenome:', nome[-1])

Profa. Alana Oliveira, ECP / UFMA


31
Exercícios Complementares
• Faça um programa que permita ao usuário digitar o
seu nome e em seguida mostre o nome do usuário
de trás para frente utilizando somente letras
maiúsculas.

• Dica: lembre−se que ao informar o nome o usuário


pode digitar letras maiúsculas ou minúsculas.

• Exemplo:
• Entrada de dados: Alana
• Saída de dados: ANALA

Profa. Alana Oliveira, ECP / UFMA


32
Exercícios Complementares

Nome invertido maiúsculo


:: Script em Python
(utilizando manipulação de string)

nome = ”Alana"
print nome[::-1].upper()

Profa. Alana Oliveira, ECP / UFMA


33
Nome invertido maiúsculo
:: Script em Python (“maneira braçal”)
# Leitura do nome
nome = input("digite seu nome ---> ")
# Declaração de uma string
nomeInvert = "“
# Processo de inversão da string
i = len(nome) - 1
while i >= 0:
nomeInvert = nomeInvert+nome[i:i+1]
i = i – 1
# Impressão da string invertida e em maiúsculo
print nomeInvert.upper()

Profa. Alana Oliveira, ECP / UFMA


34
Exercícios Complementares
Exemplo de
resultado:
• Nome na vertical. Faça F
um programa que solicite o U
nome do usuário e L
A
imprima-o na vertical. N
O

• Nome na vertical em Exemplo de


resultado:
escada. Modifique o F
programa anterior de forma FU
a mostrar o nome em FUL
FULA
formato de escada. FULAN
FULANO

Profa. Alana Oliveira, ECP / UFMA


35
Exercícios Complementares
Exemplo de
• Nome na vertical em resultado:
escada invertida. Altere FULANO
FULAN
o programa anterior de FULA
FUL
modo que a escada seja FU
F
invertida.

Profa. Alana Oliveira, ECP / UFMA


36
Material Complementar
http://www3.ifrn.edu.br/~jurandy/fdp/doc/
aprenda-python/capitulo_07.html#id1

http://www.tutorialspoint.com/python/pyth
on_strings.htm

http://openbookproject.net/thinkcs/python
/english3e/strings.html

Profa. Alana Oliveira, ECP / UFMA 37

Você também pode gostar