Python

Dicionario em Python

0
Blogger PostOrkutBookmark/FavoritesEmailFacebookTwitterShare

Uma 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

0
Blogger PostOrkutBookmark/FavoritesEmailFacebookTwitterShare

Encontrei 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

0
Blogger PostOrkutBookmark/FavoritesEmailFacebookTwitterShare

Em 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

Go to Top