Seite 1 von 1

Umwandlung von Römischen Zahlen in Dezimalzahlen

Verfasst: Dienstag 20. November 2018, 11:14
von JayJay95
Hallo, ich bin kompletter Neuling in dem Berreich und bräuchte Hilfe.
Für die Uni soll ich ein Programm schreiben, welches römische zahlen und dezimalzahlen umrechnet.
Doch wir dürfen dazu nur verwenden was wir bisher im Seminar durchgenommen haben.
- for Schleife
- listen und zugehörige Funktionen
- Verzweigungen
Man muss natürlich dann die Regeln bedenken beim zusammen rechenen der Römischen Zahlen.

Mein Ansatz (wohl nicht sehr elegant xD) :

# Eingabe

Roman_number = input ("Bitte geben Sie eine römische Zahl ein:")
Roman_number = Roman_number.upper()

Decimal = 0

# mehrdimensionale Liste

R = [["M", 1000],["D",500],["C",100],["L",50],["X",10],["V",5],["I",1]]

# for- Schleife (in diesem Berreich kommen die Schwierigkeiten)

For i in range (len(r)) :
For x in range (len(Roman_number)) :
If X == r [0]:
If Roman_number[x] <Roman_number[x+1]:
Decimal = Roman_number[x+1] -
Roman_number [x]
If Roman_number[x] >Roman_number[x+1]:
Decimal = Roman_number[x] +
Roman_number [x+1]

Print (Decimal)


So das ist wirklich nur ein Ansatz nur komme ich nicht weiter. Über Hilfe würde ich mich freuen :D

Re: Umwandlung von Römischen Zahlen in Dezimalzahlen

Verfasst: Dienstag 20. November 2018, 11:25
von __deets__
Bitte benutz die code-Tags um deinen code zu formatieren, der ist sonst nicht lesbar.

Zu deinem Problem:

Code: Alles auswählen

for i in len(sequenz):
      element = sequenz[i][/codoe]

ist ein absolutes anti-pattern in Python. Stattdessen iteriert man gleich ueber die Liste:

[code]for element in sequenz:
      ...
Und damit wird dein Problem einfacher, denn zuerst iterierst du ueber die Elemente deiner roemischen Zahl, und danach ueber die Tupel in deiner Liste R. Wenn dann das erste Element mit dem aktuellen Buchstaben uebereinstimmt, summierst du.

Re: Umwandlung von Römischen Zahlen in Dezimalzahlen

Verfasst: Dienstag 20. November 2018, 12:02
von Sirius3
@JayJay95: als erstes solltest Du die NameErrors beheben, denn Python achtet auf Groß-Kleinschreibung. In dem Zuge kannst Du den Variablen auch gleich bessere Namen als x oder r geben, die auch etwas aussagen. Variablennamen schreibt man komplett klein.

Wo ist nun Dein konkretes Problem? Wo kommst Du nicht weiter?