Seite 1 von 1

Zeichenketten aneinanderhängen

Verfasst: Montag 11. April 2016, 16:20
von daniel2807
Hallo,
ich brauche Hilfe bei der Ausgabe aneinandergehängter Zeichenketten. Mein Programm zur Binärdarstellung sieht wie folgt aus:

Code: Alles auswählen

#Binärdarstellung
z=int(input('Dezimalzahl: '))
while z!=0:
b=z%2
z=z//2
print(b)
Nun möchte ich gerne die Zahlen der Variablen b (also alle berechneten) ausgeben, sodass am Ende für z.B. 4 statt
0
0
1

1 0 0
da steht. Würde mich freuen, wenn mir jemand schnellstmöglich helfen kann.

Gruß,
Daniel2807

Re: Zeichenketten aneinanderhängen

Verfasst: Montag 11. April 2016, 16:37
von BlackJack
@daniel2807: Schau Dir mal an was für Argumente man der `print()`-Funktion noch so mitgeben kann und was die bewirken.

Re: Zeichenketten aneinanderhängen

Verfasst: Montag 11. April 2016, 16:52
von BlackJack
@daniel2807: Meine letzte Antwort war natürlich nicht so zielführend, weil die Ziffern nicht in der Reihenfolge ausgegeben werden sollen, in der sie berechnet werden.

Du musst die Ziffern als Zeichenketten vor der Ausgabe in einer Datenstruktur, zum Beispiel in einer Liste sammeln, dann dafür sorgen, dass sie in der richtigen Reihenfolge sind, und sie dann zu einer Zeichenkette zusammensetzen, die man ausgeben kann. Dabei ist `reversed()`-Funktion und die `join()`-Methode auf Zeichenketten hilfreich.

Du könntest aber auch einfach die `bin()`-Funktion verwenden, falls Dich der Präfix '0b' nicht stört, oder die `format()`-Funktion oder die gleichnamige Methode auf Zeichenketten falls da noch anderer, Konstanter oder variabler Inhalt mit in die Zeichenkette formatiert werden soll.

Code: Alles auswählen

In [1]: bin(4)
Out[1]: '0b100'

In [2]: '{0:b}'.format(4)
Out[2]: '100'

In [3]: format(4, 'b')
Out[3]: '100'

Re: Zeichenketten aneinanderhängen

Verfasst: Montag 11. April 2016, 18:33
von daniel2807
Ich hab es jetzt auch selber herausgefunden. Mein Programm sieht nun folgendermaßen aus:

#Binärdarstellung
z=int(input('Dezimalzahl: '))
p=str()
while z!=0:
b=z%2
z=z//2
p=str(b)+p
print(p)

Gruß,
Daniel2807

Re: Zeichenketten aneinanderhängen

Verfasst: Montag 11. April 2016, 19:02
von Sirius3
@daniel2807: dank vieler Hinweise hast Du eine Lösung gefunden; an der Namensgebung Deiner Variablen kannst Du aber noch arbeiten. Was soll man aus p oder z herauslesen? Leere Strings erzeugt man normalerweise aus einem leeren literalen String "". Zahlen <=0 werden noch falsch umgewandelt.