Merge pull request 'simple classes, add codewars - last digit of huge number' (#2) from feature/codewars_last_digit_of_huge_number into master

Reviewed-on: #2
This commit is contained in:
Michael Schären 2026-02-27 17:21:10 +01:00
commit 14f60e7396
4 changed files with 61 additions and 0 deletions

32
src/classes.py Normal file
View File

@ -0,0 +1,32 @@
from dataclasses import dataclass
@dataclass(frozen=True)
class Konto:
inhaber: str
saldo: float
def __init__(self, inhaber: str, saldo: float):
if not inhaber:
raise ValueError("inhaber is required")
if saldo < 0:
raise ValueError("saldo must be positive")
object.__setattr__(self, "inhaber", inhaber)
object.__setattr__(self, "saldo", saldo)
def einzahlen(self, betrag: float):
object.__setattr__(self, "saldo", self.saldo + betrag)
def abheben(self, betrag: float):
object.__setattr__(self, "saldo", self.saldo - betrag)
return betrag
k1 = Konto("Alice", 100.0)
k2 = Konto("Housi", 10)
k2.einzahlen(100)
print(k1.inhaber)
print(k2.saldo)
print(k1 is k2)
print(k1)

0
src/codewars/__init__.py Normal file
View File

View File

@ -0,0 +1,9 @@
def last_digit(lst):
rev_lst = list(reversed(lst))
n = 1
for number in rev_lst:
n = number ** (n if n < 4 else n % 4 + 4)
return n % 10

View File

@ -0,0 +1,20 @@
from codewars.lastDigitOfHugeNumber import last_digit
def test_last_digit():
test_data = [
([], 1),
([0, 0], 1),
([0, 0, 0], 0),
([1, 2], 1),
([3, 4, 5], 1),
([4, 3, 6], 4),
([7, 6, 21], 1),
([12, 30, 21], 6),
([2, 2, 2, 0], 4),
([937640, 767456, 981242], 0),
([123232, 694022, 140249], 6),
([499942, 898102, 846073], 6),
]
for test_input, test_output in test_data:
assert last_digit(test_input) == test_output