Compare commits

..

3 Commits

Author SHA1 Message Date
43cb9a9b56 Merge pull request 'aufgabe2_codewars' (#3) from aufgabe2_codewars into main
Reviewed-on: #3

Die Vignère-Chiffre ist nicht ganz einfach, tiptop. Man könnte den Code noch vereinfachen, weil sich encode und decode nur an ganz wenigen Stellen unterscheiden (+ vs. -), aber das passt gut so.
2026-03-05 19:27:16 +01:00
leart-ramushi
473022d019 Abgabe Aufgabe 2 2026-03-04 17:04:40 +01:00
leart-ramushi
67afe7e167 Temporary for testing during lesson 2026-03-04 16:55:19 +01:00
2 changed files with 74 additions and 0 deletions

View File

@ -0,0 +1,51 @@
# Abgabe - Vigenère Cipher Helper
# Link dazu: https://www.codewars.com/kata/52d1bd3694d26f8d6e0000d3
# Leart Ramushi
class VigenereCipher(object):
def __init__(self, key, alphabet):
self.key = key
self.alphabet = alphabet
self.alp_len = len(alphabet)
pass
def encode(self, text):
result = ""
key_pos = 0
print(text)
for pos in range(len(text)):
currrent_char = text[pos]
if currrent_char in self.alphabet:
key_char = self.key[key_pos % len(self.key)]
# print(currrent_char, " - ", key_char)
text_index = self.alphabet.index(currrent_char)
key_index = self.alphabet.index(key_char)
# print(text_index, " - ", key_index)
update_index = (text_index + key_index) % len(self.alphabet)
result += self.alphabet[update_index]
else:
result += currrent_char
key_pos += 1
print(result)
return result
def decode(self, text):
result = ""
key_pos = 0
for pos in range(len(text)):
currrent_char = text[pos]
if currrent_char in self.alphabet:
key_char = self.key[key_pos % len(self.key)]
# print(currrent_char, " - ", key_char)
text_index = self.alphabet.index(currrent_char)
key_index = self.alphabet.index(key_char)
# print(text_index, " - ", key_index)
update_index = (text_index - key_index) % len(self.alphabet)
result += self.alphabet[update_index]
else:
result += currrent_char
key_pos += 1
return result

23
src/temporary/temp.py Normal file
View File

@ -0,0 +1,23 @@
class Konto:
def __init__(self, inhaber, saldo):
self.inhaber = inhaber
self.saldo = saldo
def einzahlen(self, betrag):
self.saldo += betrag
def abheben(self, betrag):
if betrag <= self.saldo:
self.saldo -= betrag
else:
print("Leider nicht genug Geld auf dem Konto")
def __repr__(self):
return f"Konto(inhaber='{self.inhaber}', saldo={self.saldo})"
def __str__(self):
return f"Konto von {self.inhaber} mit einem Saldo von {self.saldo} Euro"
k = Konto("Max Mustermann", 100)
print(str(k))