Aula 4
Na aula #4 revimos alguns tipos de dados básicos: str (string), tuple e list.
Fizemos alguns exercícios de programação, inclusive uma versão do exemplo3@aula1. O objetivo foi mostrar como a implementação no espírito pythonista é espetacularmente mais simples.
Dado um texto, conte o número de palavras que contém a letra a e a letra b
Solução força-bruta:
''' Conta o numero de palavras nde um texto que contenha a letra a e a letra b.
Percorre o texto caracter por caracter mantendo dois estados:
1 => fora de uma palavra
2 => dentro de uma palavra
No estado 2 mantem dois flags, acheiA e acheiB para lembrar
se achou as letras a e b respectivamente.
No estado 2 quando ambos flags forem verdadeiros, incrementa
a contagem de palavras e lembra o feito para evitar contagem
repetida da mesma palavra.
'''
txt = input()
conta = 0
# flags de controle dos estados
na_palavra = txt[0].isalnum()
acheiA = False
acheiB = False
ja_contei = False
# percorre o texto caracter a caracter
for car in txt:
# verifica se entrou numa palavra
if not na_palavra:
if car.isalnum():
# entrou numa palavra
na_palavra = True
else:
# estavamos numa palavra: verifica se palavra terminou
if not car.isalnum():
# palavra terminou: reseta todos flags
na_palavra = False
acheiA = False
acheiB = False
ja_contei = False
# se estamos numa palavra, verifica se caracter é 'a' ou 'b'
if na_palavra:
if car == 'a':
acheiA = True
if car == 'b':
acheiB = True
# se palavra contem a e b, incrementa contagem de palavras
if acheiA and acheiB:
# mas somente se ainda não tinha contado esta palavra
if not ja_contei:
conta = conta + 1
ja_contei = True
# imprime numero de palavras encontradas
print('Numero de palavras encontradas = ', conta)
Solução estilo pythonista:
'''
Conta palavras no texto que contenham a letra a e tambem a letra b.
'''
txt = input()
lst = txt.split()
wrd = [x for x in lst if 'a' in x and 'b' in x]
print('Numero de palavras encontrado =', len(wrd))
Recomendo que leiam os tópicos relevantes em Recursos. Leiam tambem o texto e exemplos relevantes no tutorial oficial do Python.
Depositei o material da aula 4 no dropbox, aqui.
Q. Show!
ReplyDelete