Skip to content

functions_firat_adar_dal.py #847

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
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
47 changes: 47 additions & 0 deletions Week04/functions_firat_adar_dal.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
custom_power = lambda x=0, /, e=1: x ** e

def custom_equation(
x: int = 0,
y: int = 0,
/,
a: int = 1,
b: int = 1,
*,
c: int = 1
) -> float:
"""
Calculates the value of the equation (x**a + y**b) / c.

:param x: The base for the first term, default is 0. (positional-only)
:param y: The base for the second term, default is 0. (positional-only)
:param a: The exponent for the first term, default is 1. (positional-or-keyword)
:param b: The exponent for the second term, default is 1. (positional-or-keyword)
:param c: The divisor, default is 1. (keyword-only)
:return: The result of the equation (x**a + y**b) / c.
:rtype: float
"""
try:
return (x ** a + y ** b) / c
except ZeroDivisionError:
raise ValueError("The divisor 'c' cannot be zero.")

def fn_w_counter() -> tuple[int, dict[str, int]]:
"""
Tracks the number of times this function has been called and counts the calls by module name.

:return: A tuple containing the total call count and a dictionary of calls by module name.
:rtype: tuple[int, dict[str, int]]
"""
if not hasattr(fn_w_counter, "counter"):
fn_w_counter.counter = 0
fn_w_counter.call_counts = {}

module_name = __name__
fn_w_counter.counter += 1

if module_name in fn_w_counter.call_counts:
fn_w_counter.call_counts[module_name] += 1
else:
fn_w_counter.call_counts[module_name] = 1

return fn_w_counter.counter, fn_w_counter.call_counts
Loading