Ich versuche, die Integer-to-römische Zahl Umwandlung Übung zu arbeiten, die ein Übergangsritus für neue Python-Programmierer scheint. Ich scheine erfolgreich die ganze Zahl korrekt in römische Zahl geschrieben zu haben, aber ich kann die römische Zahl nicht zu einer Ganzzahl bringen, um richtig zu funktionieren. Mit anderen Worten, wenn der Benutzer "1999" eintippt, ist die Ausgabe erfolgreich "MCMXCIX"; jedoch, wenn der Benutzer „MCMXCIX“ der Ausgang der Fehler ist:Roman/Numeral Conversion in Python 3.5
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module> rom_to_int(MCMXCIX)
NameError: name 'MCMXCIX' is not defined".
Hier ist mein Code so weit:
def int_to_rom (integer):
returnstring=''
table=[['M',1000],['CM',900],['D',500],['CD',400],['C',100],['XC',90],['L',50],['XL',40],['X',10],['IX',9],['V',5],['IV',4],['I',1]]
for pair in table:
while integer-pair[1]>=0:
integer-=pair[1]
returnstring+=pair[0]
return returnstring
def rom_to_int (string):
returnint=0
table=[['M',1000],['CM',900],['D',500],['CD',400],['C',100],['XC',90],['L',50],['XL',40],['X',10],['IX',9],['V',5],['IV',4],['I',1]]
for pair in table:
continueyes=True
while continueyes:
if len(string)>=len(pair[0]):
if string[0:len(pair[0])]==pair[0]:
returnint+=pair[1]
string=string[len(pair[0]):]
else: continueyes=False
else: continueyes=False
return returnint
ich auf halbem Weg dort bin und Hilfe bei der Fehlerbehebung benötigen. Kann jemand sehen, was mit dem zweiten Teil nicht stimmt? Ich habe mir andere Codes angeschaut, aber sie scheinen auf Python 2 oder andere Programmiersprachen ausgerichtet zu sein. Ich habe auch gelernt, dass es einen Python-Konverter gibt, der das jetzt einfach macht (roman, roman.toRoman (myInt)), ABER ich versuche, Schreibfunktionen zu üben. Jede Hilfe würde sehr geschätzt werden.
Verstehen Sie den Unterschied zwischen einem Variablennamen, z. "var" und eine Zeichenkette, z.B. ''var''? – TigerhawkT3
Ich denke, es kann wichtig sein, die zwei Buchstaben Elemente vorne in das Array zu setzen, um sicherzustellen, dass CM als 900 nicht 1100 verstanden wird. –
Python weiß nicht, was 'MCMXCIX' ist. Es kennt nur "MCMXCIX" oder "MCMXCIX" –