Umwandlung von Römischen Zahlen in Dezimalzahlen

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
JayJay95
User
Beiträge: 1
Registriert: Dienstag 20. November 2018, 10:52

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
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

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.
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@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?
Antworten