2017-09-10 1 views
0

Ich versuche, numerische Werte von Zeichenfolgen basierend auf einem Wörterbuch zu erzeugen, aber jedes Mal, wenn ich versuche, das Programm auszuführen, erhalte ich einen Fehler.Key Fehler mit einer Readline-Methode und Wörterbuch

key error:'\n' 

Was könnte das Problem sein? Ich denke, es kann die Readline- Methode sein, ich habe 2 so, dass ich jeweils 2 Zeilen in testdata.txt

key = {'A':1, 
    'B':2, 
    'C':3, 
    'D':4, 
    'E':5, 
    'F':6, 
    'G':7, 
    'H':8, 
    'I':8, 
    'J':10, 
    'K':11, 
    'L':12, 
    'M':13, 
    'N':14, 
    'O':15, 
    'P':16, 
    'Q':17, 
    'R':18, 
    'S':19, 
    'T':20, 
    'U':21, 
    'V':22, 
    'W':23, 
    'X':24, 
    'Y':25, 
    'Z':26} 

infile = open("testdata.txt","r") 

apro = infile.readline() 
bpro = infile.readline() 

aproresult = 1 
bproresult = 1 

for i in apro: 
    aproresult *= key[i] 
print(aproresult) 

outfile = open("testdataAnswer.txt","w") 

infile.close() 

Im Folgenden lesen kann, ist die Testdaten-Datei:

COMETQ 
HVNGAT 

Antwort

0

Ihre readline() Funktion wahrscheinlich ist Lesen in einer Zeilenumbruch, weshalb Sie \n bekommen. Sie können wahrscheinlich so etwas wie rstrip() verwenden, um die nachfolgenden Leerzeichen auszublenden.

apro = infile.readline() 
bpro = infile.readline() 

# Get rid of the line break using rstrip here 
apro = apro.rstrip() 
bpro = bpro.rstrip() 
+0

Danke, ich bin etwas neu zu dieser Methode so wie würdest du das implementieren? – victor

+0

Ich kann Ihnen nicht wirklich sagen, wenn ich nicht weiß, wie Ihre Textdatei aussieht. Es hängt davon ab, woher das '\ n' kommt. – Cuber

+0

COMETQ, HVNGAT (dies ist die Datendatei, diesen Text ignorieren, und das Komma, das Komma stellt eine neue Zeile dar) – victor