[Python] Gib es eine Funktion mit der ich meine Elemente in der For-Schleife rückwärts ausgeben kann?
Ich frage mich ob es eine Funktion gibt, mir der ich z.B: [x for x in range(0, 11)] rückwärts ausgeben kann.
Ich hab in meiner Funktion herausgefunden wie ich es machen könnte, aber dafür muss es doch sicher etwas einfacheres geben oder?
def b_to_d(b_num):
summe = 0
for i in range(0,len(b_num)):
u = int(b_num[i])
rev = len(b_num)-i-1 # <================================
summe+= u*(2**rev)
return summe
b_to_d(b_num = input("Gib eine Binärzahl an: "))
2 Antworten
Vom Fragesteller als hilfreich ausgezeichnet
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Python
Hast du schon an sowas wie z.B. [x for x in range(10, -1, -1)] gedacht? Man kann bei range() auch eine negative Schrittweite angeben.
Ansonsten könntest du bei Listen auch die reversed()-Funktion nutzen. Also z.B. [x for x in reversed(range(0, 11))].
mihisu
06.10.2022, 17:54
@python1noob
Falls du übrigens einen String, der eine Binärzahl repräsentiert, in eine Ganzzahl umwandeln möchtest, kannst du übrigens auch einfach int(..., 2) bzw. int(..., base=2) verwenden.
def b_to_d(b_num):
return(int(b_num, 2))
b_to_d(b_num = input("Gib eine Binärzahl an: "))
Wie wär's mit:
summe=0
for c in b_num:
summe = summe*2+int(c)
oder
summe = int(b_num,2)
Danke war hilfreich!