Skip to content

Commit 1aca968

Browse files
committed
Fix type annotations and bugs in type_checking_with_mypy.py
- Fix open_account() parameter: change 'balance' to 'balances' (NameError bug) - Add missing type annotations to all function parameters and return types - Run through mypy to validate all type hints are correct - Verify code runs without errors
1 parent 1a7c06b commit 1aca968

1 file changed

Lines changed: 30 additions & 0 deletions

File tree

prep/type_checking_with_mypy.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
def open_account(balances: dict[str, int], name: str, amount: int) -> None:
2+
balances[name] = amount
3+
4+
def sum_balances(accounts: dict[str, int]) -> int:
5+
total = 0
6+
for name, pence in accounts.items():
7+
print(f"{name} had balance {pence}")
8+
total += pence
9+
return total
10+
11+
def format_pence_as_string(total_pence: int) -> str:
12+
if total_pence < 100:
13+
return f"{total_pence}p"
14+
pounds = int(total_pence / 100)
15+
pence = total_pence % 100
16+
return f"£{pounds}.{pence:02d}"
17+
18+
balances: dict[str, int] = {
19+
"Sima": 700,
20+
"Linn": 545,
21+
"Georg": 831,
22+
}
23+
24+
open_account(balances, "Tobi", 913)
25+
open_account(balances, "Olya", 713)
26+
27+
total_pence: int = sum_balances(balances)
28+
total_string: str = format_pence_as_string(total_pence)
29+
30+
print(f"The bank accounts total {total_string}")

0 commit comments

Comments
 (0)