-
Notifications
You must be signed in to change notification settings - Fork 0
/
testar.py
executable file
·46 lines (36 loc) · 1.18 KB
/
testar.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/usr/bin/env python
# coding: utf-8
"""
Dado um arquivo onde se espera encontrar todas as palavras do
Alfabeto Fonético da OTAN, este programa indica palavras faltantes.
"""
import sys, re
PALAVRAS = '''Alfa Bravo Charlie Delta Echo Foxtrot Golf Hotel India Juliett
Kilo Lima Mike November Oscar Papa Quebec Romeo Sierra Tango
Uniform Victor Whiskey Xray Yankee Zulu'''.split()
QT_EXIBIR = 3
nao_palavra = re.compile(r'\W+')
if len(sys.argv) != 2:
print 'modo de usar:'
print '\t%s <arquivo-a-verificar>' % sys.argv[0]
sys.exit(1)
if sys.argv[1] == '-l':
for palavra in PALAVRAS:
print palavra
sys.exit(0)
with open(sys.argv[1]) as arq_entrada:
entrada = set()
for lin in arq_entrada:
entrada.update(p for p in re.split(nao_palavra, lin) if p)
faltando = 0
for palavra in PALAVRAS:
if palavra not in entrada:
if faltando == 0:
print 'Faltando:'
faltando += 1
if faltando <= QT_EXIBIR:
print '\t'+palavra
if faltando > QT_EXIBIR:
dif = faltando - QT_EXIBIR
quantas = 'uma palavra' if dif == 1 else '%s palavras' % dif
print '\t\t... e mais %s faltando' % quantas