Python
Dicionario em Python
0Uma das coisas me incomodava no Python era o fato das entradas na estrutura de dicionário não serem ordenadas. Na versão 2.7 foi acrescentada uma função para manter a ordem dos valores.
print '*** Novo Dicionario \n'
from collections import OrderedDict
novo_dicionario = OrderedDict([('primeiro', 1), ('segundo', 2), ('terceiro', 3)])
print novo_dicionario.items()
print novo_dicionario.values()
print novo_dicionario['segundo']
print '\n\n*** Antigo Dicionario \n'
antigo_dicionario={'primeiro': 1, 'segundo': 2, 'terceiro':3}
print antigo_dicionario.items()
print antigo_dicionario.values()
print antigo_dicionario['segundo']
A seguir o resultado da execução.
*** Novo Dicionario
[('primeiro', 1), ('segundo', 2), ('terceiro', 3)]
[1, 2, 3]
2
*** Antigo Dicionario
[('terceiro', 3), ('segundo', 2), ('primeiro', 1)]
[3, 2, 1]
2
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


