algorytm.org

Implementacja w Python



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Szyfr ROT-13 - Implementacja w Python
Ocena użytkownikóww: *****  / 3
SłabyŚwietny
Nadesłany przez Marek Madejski, 22 maja 2015 14:56
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.

szyfrowanie.py:
# -*- coding: UTF-8 -*-

# Szyfrowanie tekstu z dowolnym przesunieciem
#
# Szyforwanie tekstu algorytmem ROT13 (dla wartosci przesuniecia 13,
# deszyfrowanie użyciem drugi raz wartosci 13 lub -13)
#
# Szyforwanie tekstu algorytmem Cezara (dla wartosci przesuniecia 3,
# deszyfrowanie użyciem wartości -3)
#
# Dziala dla duzych i malych liter
# www.algoyrmt.org

import string


def przesunLitere(c, n, alf):
	if c in alf:
		oldIdx = alf.index(c)            #znajdz indeks
		newIdx = (oldIdx + n) % len(alf) #przesun indeks z dzieleniem modulo o dlugosc alfabetu (aby nie wyjsc poza zakres)
		return alf[newIdx]


def przesun(word, n=0, alf = string.ascii_lowercase): #zwraca wynik z małymi literami
	word = word.lower()
	result = ""
	for c in word:
		if c in alf:
			result += przesunLitere(c, n, alf)
		else:
			result += c
	return result


def przesun2(word, n=0, alf = string.ascii_lowercase): #zwraca wynik, zachowujac wielkosc liter
	alfLower = alf.lower()
	alfUpper = alf.upper()
	result = ""
	for c in word:
		if c in alfLower:
			result += przesunLitere(c, n, alfLower)
		elif c in alfUpper:
			result += przesunLitere(c, n, alfUpper)
		else:
			result += c
	return result

#Szyfr Cezara
def przesunCezar(word):
	return przesun2(word, 3)

#Szyfr ROT-13
def przesunRot13(word):
	return przesun2(word, 13)

def main():
	word = raw_input("Wpisz tekst\n")
	n    = int(raw_input("Wpisz przesuniecie\n"))
	word = przesun2(word, n)
	print(word)

if __name__ == "__main__":
	main()
Dodaj komentarz