Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file not shown.
30 changes: 30 additions & 0 deletions prep exercises/bank_account.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
def open_account(balances, name, amount):
balances[name] = amount

def sum_balances(accounts):
total = 0
for name, pence in accounts.items():
print(f"{name} had balance {pence}")
total += pence
return total

def format_pence_as_string(total_pence):
if total_pence < 100:
return f"{total_pence}p"
pounds = int(total_pence / 100)
pence = total_pence % 100
return f"£{pounds}.{pence:02d}"

balances = {
"Sima": 700,
"Linn": 545,
"Georg": 831,
}

open_account(balances, "Tobi", 9.13)
open_account(balances, "Olya", "£7.13")

total_pence = sum_balances(balances)
total_string = format_pence_as_string(total_pence)

print(f"The bank accounts total {total_string}")
20 changes: 20 additions & 0 deletions prep exercises/dataclasses_exercise.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
from dataclasses import dataclass
from datetime import date

@dataclass(frozen=True)
class Person:
name: str
date_of_birth: str
preferred_operating_system: str

def is_adult(self):
today_date = date.today()
birth_date = date.fromisoformat(self.date_of_birth)
age = today_date.year - birth_date.year

return age >= 18


imran = Person("Imran", "2019-10-18", "Ubuntu")

print(imran.is_adult())
22 changes: 22 additions & 0 deletions prep exercises/generic_exercise.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
from dataclasses import dataclass
from typing import List

@dataclass(frozen=True)

class Person:
name: str
children: List["Person"]
age: int

fatma = Person(name="Fatma", children=[], age=25)
aisha = Person(name="Aisha", children=[], age = 15)

imran = Person(name="Imran", children=[fatma, aisha], age = 40)

def print_family_tree(person: Person) -> None:
print(person.name)

for child in person.children:
print(f"- {child.name} ({child.age})")

print_family_tree(imran)
18 changes: 18 additions & 0 deletions prep exercises/objects_and_classes.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
from datetime import date

class Person:
def __init__(self, name: str, date_of_birth: str, preferred_operating_system: str, address: str):
self.name = name
self.date_of_birth = date.fromisoformat(date_of_birth)
self.preferred_operating_system = preferred_operating_system
self.address = address

def is_adult(self):
today_date = date.today()

return (today_date.year - self.date_of_birth.year) >= 18


imran = Person("Imran", "2005-12-04", "Ubunut", "Wardend Road, Birmingham")

print(imran.is_adult())
5 changes: 5 additions & 0 deletions prep exercises/test.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
def double(n):
return n * 3

num = double(21)
print(num)
Loading