Mit Python ab einen bestimmten Wert umrechnen

LordHelmchen200

Lieutenant
Registriert
Sep. 2020
Beiträge
590
Hi,

Ich kenne Python seid gestern und wollte mich da rein arbeiten da mich das Programmieren interessiert (da es ohne Vorkenntnisse einfach zu bedienen ist, was ich genial finde) und wir es demnächst auch in der Schule benutzen werden.

Meine Frage:
ich habe einen Rechner Programmiert zur Reihenschaltung 3 verschiedener Wiederstände und will
Wenn das Ergebnis unter 1000 liegt, soll der Widerstand in Ohm angezeigt werden
Ab einem Ergebnis von 1000 soll es in Kilo Ohm umgerechnet und angezeigt werden
Ab einem Ergebnis von 1000000 soll es in Mega Ohm umgerechnet und angezeigt werden
Ab einem Ergebnis von 1000000000 soll es in Giga Ohm umgerechnet und angezeigt werden

Wie stelle ich das an welche Argumente braucht man und wie ist der Befehl aufgebaut ?
Schonmal vielen Dank im Voraus:)

Hier ist ein Screenshot vom Skript und der Ausführung:
Screenshot 2022-03-22 085127.png
 
Also das einfachste wäre erstmal eine if-else Bedingung.
Du könntest natürlich auch so lange durch 1000 teilen, bis eine Zahl kleiner 1 raus kommt und dann schauen, wie oft du durch 1000 geteilt hast und dementsprechend k, M, G oder so davor schreiben
 
  • Gefällt mir
Reaktionen: xxMuahdibxx
Es gibt mehrere Ideen:

Der Zehnerlogarithmus ziehen, auf ein vielfaches von 3 abrunden, dann mit einer Look Up table das passende Prefix suchen und entsprechend die Zahl teilen ("Stellen verschieben"). Die Table kannst du als Dictionary ausführen, den Logarithmus ziehen mit math.log10, das mit dem vielfachen von 3 geht mit /3 math.floor und wieder *3.

Ohm=10^0,
kOhm=10^3
MOhm=10^6
...
mOhm=10^-3
µOhm=10^-6



Oder wie M4ttX mit ner if else Kette für <1000 <10^6 ...
 
Und teste mal, was passiert, wenn einer -7 als Wert eingibt. Oder "fünf", oder 12k. ;)
 
Okay vielen dank für die Antworten, das werde ich später ausprobieren und schauen wie ich es wo einsetzte.
Da ich mit Python noch nicht so gut vertraut bin werde ich einfach experimentieren:D
 
Eine einfache Lösung wäre eine kleine Funktion dafür zu schreiben:

Python:
sizeUnits = ['Ohm','Kilo Ohm','Mega Ohm','Giga Ohm']

def convert(size):
    index = 0
    while size >= 1000:
        size /= 1000
        index += 1
    try:
        return f'{size:.2f} {sizeUnits[index]}'
    except IndexError:
        return 'Size too large'

print(f'Das Ergebnis lautet: {convert(erg)}')
 
Zurück
Oben