class Counter:
def __init__(self, start: int = 0):
self.value = start
self.label = "counter"
def increment(self) -> int:
self.value += 1
return self.value
def factorial(n: int) -> int:
if n <= 1:
return 1
return n * factorial(n - 1)
def compute_stats(numbers):
total = sum(numbers)
count = len(numbers)
avg = total / count if count else 0.0
return {
"sum": total,
"count": count,
"average": avg,
}
def greet(name: str, greeting: str = "Hello") -> str:
return f"{greeting}, {name}!"
def process_items(items):
results = []
for item in items:
doubled = item * 2 results.append(doubled)
return results
def outer():
result = middle(5)
return result * 2
def middle(x):
y = x + 3
z = inner(y)
return z + 1
def inner(x):
square = x * x
return square
def main():
text = "Hello, DAP!"
number = 42
pi = 3.14159
flag = True
items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 15, 20]
mapping = {"key_a": 100, "key_b": 200}
counter = Counter(start=10)
breakpoint()
print(f"text = {text}")
print(f"number = {number}")
greeting = greet("World")
print(greeting)
breakpoint()
doubled = process_items(items)
print(f"doubled = {doubled}")
breakpoint()
fact = factorial(5)
print(f"factorial(5) = {fact}")
counter.increment()
counter.increment()
print(f"counter.value = {counter.value}")
breakpoint()
stats = compute_stats(doubled)
print(f"stats = {stats}")
outer_result = outer()
print(f"outer_result = {outer_result}")
breakpoint()
x = 10
y = 20
z = x + y
s = f"sum: {z}"
print(s)
if __name__ == "__main__":
main()