Posts tagged Python
Todas as possibilidades de maiusculas e minusculas
0Encontrei um código muito interessante no site: http://www.evanfosmark.com/2008/06/xor-encryption-with-python/
É um código simples e recursivo, que busca todas as possibilidades de letras maiucuslas e minusculas a partir de uma string.
def recurse (pref,suff):
# If no characters left, just print prefix.
if suff == "":
print pref
return
# Otherwise add lowercase of first suffix letter to prefix
# and recur with that and the remainder of the suffix.
# Then do the same for uppercase.
# We also detect if the upper and lower are the same
# and only recurse once.
if suff[0:1].lower() == suff[0:1].upper():
recurse (pref + suff[0:1], suff[1:])
else:
recurse (pref + suff[0:1].lower(), suff[1:])
recurse (pref + suff[0:1].upper(), suff[1:])
# Test the function with "Ben!!!".
recurse ("","abc!")
Entrada:
abc!
Saida:
abc!
abC!
aBc!
aBC!
Abc!
AbC!
ABc!
ABC!
Resolvendo a Cifra de Cesar
0Em uma das aulas da Pós Graduação um professor pediu para “descriptografar”, na mão, uma frase que havia sido “criptografada” com a Cifra de César. Mas acabei optando por fazer um script Python para resolver o problema.
A seguir o código que fiz:
#Descriptograma a cifra de Cesar
import os# Limpa a tela
os.system(['clear','cls'][os.name == 'nt'])# Salto para descriptografia
salto=13# Mensagem que sera descriptografada
frase_criptografada=’Cnen pbqvsvpne hz grkgb pbz n pvsen qr Prfne onfgn ebgnpvbane nf yrgenf rz germr cbfvcorf qb nysnorgb’.lower()# Inicializa variavel que contera a mensagem descriptografada
frase_descriptografada=”# Percorre a string que contem a mensagem criptografada
for i in frase_criptografada:
if i != ‘ ‘:
# Pega o numero do caracter da letra e subtrai o numero do salto
nova_letra=ord(i)-salto
# Na tabela de caracteres a letra “a” corresponde a 97 e a “z” corresponde a 123
# Caso a subtracao do salto com valor da letra seja inferior a 97, a diferena do valor sera subtraido de “123″ (lista circular)
if nova_letra<97:
x=97-nova_letra
nova_letra=123-x# Converte o numero da letra para caracter e concatena na variavel que contera a mensagem
frase_descriptografada+=chr(nova_letra)
else:
# em caso de ‘espaco’ nao havera alteracao do caracter
frase_descriptografada+=i# Imprime as frases criptografada e descriptografada
print ‘FRASE CRIPTOGRAFADA:’
print frase_criptografada
print ‘\nFRASE DESCRIPTOGRAFADA:’
print frase_descriptografada
Removendo Comentários de Arquivos
0Esses dias eu precisei fazer uma função em Python para remover “comentários” de alguns arquivos fontes para depois analisa-los.
A Solução que encontrei foi utilizar expressão regular.
Aqui vai a solução:
Import re
f=’XXXXXX/XXXXX.YYY’ #nome do arquivo que terá o código removido
# Abre Arquivo com comentário
code_with_comments = open(f).read()# Remove Comentários
regex = re.compile(r”/\*.*?\*/”, re.MULTILINE|re.DOTALL)
code_without_comments = regex.sub(“”, code_with_comments)# Salva o arquivo com o mesmo nome
fh = open(f, “w”)
fh.write(code_without_comments)
fh.close()


