Resonant Frequency & Electrical Impedance
diff --git a/electronics/electrical_impedance.py b/electronics/electrical_impedance.py
new file mode 100644
index 000000000000..44041ff790b6
--- /dev/null
+++ b/electronics/electrical_impedance.py
@@ -0,0 +1,46 @@
+"""Electrical impedance is the measure of the opposition that a
+circuit presents to a current when a voltage is applied.
+Impedance extends the concept of resistance to alternating current (AC) circuits.
+Source: https://en.wikipedia.org/wiki/Electrical_impedance
+"""
+
+from __future__ import annotations
+
+from math import pow, sqrt
+
+
+def electrical_impedance(
+    resistance: float, reactance: float, impedance: float
+) -> dict[str, float]:
+    """
+    Apply Electrical Impedance formula, on any two given electrical values,
+    which can be resistance, reactance, and impedance, and then in a Python dict
+    return name/value pair of the zero value.
+
+    >>> electrical_impedance(3,4,0)
+    {'impedance': 5.0}
+    >>> electrical_impedance(0,4,5)
+    {'resistance': 3.0}
+    >>> electrical_impedance(3,0,5)
+    {'reactance': 4.0}
+    >>> electrical_impedance(3,4,5)
+    Traceback (most recent call last):
+      ...
+    ValueError: One and only one argument must be 0
+    """
+    if (resistance, reactance, impedance).count(0) != 1:
+        raise ValueError("One and only one argument must be 0")
+    if resistance == 0:
+        return {"resistance": sqrt(pow(impedance, 2) - pow(reactance, 2))}
+    elif reactance == 0:
+        return {"reactance": sqrt(pow(impedance, 2) - pow(resistance, 2))}
+    elif impedance == 0:
+        return {"impedance": sqrt(pow(resistance, 2) + pow(reactance, 2))}
+    else:
+        raise ValueError("Exactly one argument must be 0")
+
+
+if __name__ == "__main__":
+    import doctest
+
+    doctest.testmod()
diff --git a/electronics/resonant_frequency.py b/electronics/resonant_frequency.py
new file mode 100644
index 000000000000..4f95043b600a
--- /dev/null
+++ b/electronics/resonant_frequency.py
@@ -0,0 +1,50 @@
+# https://en.wikipedia.org/wiki/LC_circuit
+
+"""An LC circuit, also called a resonant circuit, tank circuit, or tuned circuit,
+is an electric circuit consisting of an inductor, represented by the letter L,
+and a capacitor, represented by the letter C, connected together.
+The circuit can act as an electrical resonator, an electrical analogue of a
+tuning fork, storing energy oscillating at the circuit's resonant frequency.
+Source: https://en.wikipedia.org/wiki/LC_circuit
+"""
+
+from __future__ import annotations
+
+from math import pi, sqrt
+
+
+def resonant_frequency(inductance: float, capacitance: float) -> tuple:
+    """
+    This function can calculate the resonant frequency of LC circuit,
+    for the given value of inductance and capacitnace.
+
+    Examples are given below:
+    >>> resonant_frequency(inductance=10, capacitance=5)
+    ('Resonant frequency', 0.022507907903927652)
+    >>> resonant_frequency(inductance=0, capacitance=5)
+    Traceback (most recent call last):
+      ...
+    ValueError: Inductance cannot be 0 or negative
+    >>> resonant_frequency(inductance=10, capacitance=0)
+    Traceback (most recent call last):
+      ...
+    ValueError: Capacitance cannot be 0 or negative
+    """
+
+    if inductance <= 0:
+        raise ValueError("Inductance cannot be 0 or negative")
+
+    elif capacitance <= 0:
+        raise ValueError("Capacitance cannot be 0 or negative")
+
+    else:
+        return (
+            "Resonant frequency",
+            float(1 / (2 * pi * (sqrt(inductance * capacitance)))),
+        )
+
+
+if __name__ == "__main__":
+    import doctest
+
+    doctest.testmod()

### Describe your change:



* [x] Add an algorithm?
* [ ] Fix a bug or typo in an existing algorithm?
* [ ] Documentation change?

### Checklist:
* [x] I have read [CONTRIBUTING.md](https://github.com/TheAlgorithms/Python/blob/master/CONTRIBUTING.md).
* [x] This pull request is all my own work -- I have not plagiarized.
* [x] I know that pull requests will not be merged if they fail the automated tests.
* [x] This PR only changes one algorithm file.  To ease review, please open separate PRs for separate algorithms.
* [x] All new Python files are placed inside an existing directory.
* [x] All filenames are in all lowercase characters with no spaces or dashes.
* [x] All functions and variable names follow Python naming conventions.
* [x] All function parameters and return values are annotated with Python [type hints](https://docs.python.org/3/library/typing.html).
* [x] All functions have [doctests](https://docs.python.org/3/library/doctest.html) that pass the automated testing.
* [x] All new algorithms have a URL in its comments that points to Wikipedia or other similar explanation.
* [x] If this pull request resolves one or more open issues then the commit message contains `Fixes: #{$ISSUE_NO}`.
