Nächsten E96-Widerstandswert in Python finden
Problem
Du möchtest den E24/E48/E96-Widerstandswert, der einem gegebenen exakten Wert am nächsten liegt, programmatisch mit Python finden.
Lösung
Obwohl es für diese Aufgabe Online-Tools gibt, ist es oft nützlich, skriptbare Funktionen in eigene Software integrieren zu können.
Ich habe UliEngineering geschrieben, eine reine Python3-Elektronikbibliothek, die neben vielen anderen nützlichen Funktionen auch Widerstandsauswahl bietet.
Installiere zunächst UliEngineering.
Dann kannst du die Funktionen aus Resistor.py verwenden, um den nächsten Wert zu berechnen.
Wenn wir beispielsweise den nächsten Wert zu 1269.5 Ω auf der Python3-interaktiven Shell finden möchten:
>>> from UliEngineering.Electronics.Resistors import *
>>> nearest_resistor(1269.5, sequence=e96)
1270.0Um den Wert als menschenlesbaren String auszugeben, kannst du das EngineerIO-Paket verwenden:
>>> from UliEngineering.EngineerIO
>>> from UliEngineering.Electronics.Resistors import *
>>> auto_format(nearest_resistor, 1269.5, sequence=e96)
'1.27 kΩ'Beachte, dass auto_format die nearest_resistor-Funktion selbst als erstes Argument benötigt, nicht das Ergebnis des Aufrufs dieser Funktion. Das liegt daran, dass Python3-Typannotationen verwendet werden, um auto_format mitzuteilen, dass nearest_resistor einen Wert mit der Einheit Ω zurückgibt.