Wie bekomme ich ein int-Objekt in einen mehrzeiligen string hinein?

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
ILoveJesus1001
User
Beiträge: 3
Registriert: Sonntag 18. März 2018, 17:03

Hier ein Beispiel, damit ihr seht, wo ich hänge!

s = 'Eine Zahl lautet 37476476!'
zahldez = int(s[17:-1])
zahlbin = bin(zahldez)

string ausgabe = 'Zahl Dezimal: ' + str(zahldez) + '/nZahl binaer: ' + str(zahlbin)

Aus irgendeinem Grund funktioniert die Ausgabe nicht!

Alles Liebe,
Raffael
Benutzeravatar
DeaD_EyE
User
Beiträge: 1012
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Probier mal das:

Code: Alles auswählen

'{:b}'.format(int(s[17:-1])) # binär
'{:x}'.format(int(s[17:-1])) # hex
'{:o}'.format(int(s[17:-1])) # oct
Angenommen du hast irgendeine Zahl und willst diese als HEX mit 4 Stellen darstellen, also ein Word.

Code: Alles auswählen

'0x{:04x}'.format(int(32768))
'0x{:04x}'.format(int(2**16-1))
Am besten mal hier nachsehen: https://pyformat.info/
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Sirius3
User
Beiträge: 17710
Registriert: Sonntag 21. Oktober 2012, 17:20

@ILoveJesus1001: Dein Eingabestring ist sehr speziell und das Programm funktioniert auch nur mit exakt so einem String. Schon im anderen Thread von Dir wurde Stringformatierung angesprochen. `/n` ist einfach nur `/n`. Was Du suchst ist `\n` für das Neue-Zeichen-Zeile. `string ausgabe` ist kein gültiges Python. Bei `zahldez` handelt es sich einfach nur um eine Zahl. Die intern verwendete Basis ist nicht relevant.

Code: Alles auswählen

ausgabe = 'Zahl Dezimal: {0}\nZahl binaer: {0:b}'.format(zahl)
Antworten