Python ValueError: chr () - arg nicht in range(256)

Also Lerne ich python und nochmal einige alte Projekte. Dieses Projekt beinhaltet die Aufnahme in ein Wörterbuch und eine Nachricht übersetzt von der Befehlszeile aus, und die übersetzung der Meldung. (Zum Beispiel: "btw, hello how r u" übersetzt werden würde, um "durch die Art und Weise, Hallo wie geht es dir".

Sind wir mit einem scanner geliefert werden, die von einem professor gelesen, in Token und strings. Falls nötig, kann ich es hier posten zu. Hier ist mein Fehler:

Nathans-Air-4:py1 Nathan$ python translate.py test.xlt test.msg
Traceback (most recent call last):
  File "translate.py", line 26, in <module>
    main()
  File "translate.py", line 13, in main
    dictionary,count = makeDictionary(commandDict)
  File "/Users/Nathan/cs150/extra/py1/support.py", line 12, in makeDictionary
    string = s.readstring()
  File "/Users/Nathan/cs150/extra/py1/scanner.py", line 105, in readstring
    return self._getString()
  File "/Users/Nathan/cs150/extra/py1/scanner.py", line 251, in _getString
    if (delimiter == chr(0x2018)):
ValueError: chr() arg not in range(256)

Hier ist mein main translate.py Datei:

from support import *
from scanner import *
import sys

def main():
    arguments = len(sys.argv)
    if arguments != 3:
        print'Need two arguments!\n'
        exit(1)
    commandDict = sys.argv[1]
    commandMessage = sys.argv[2]

    dictionary,count = makeDictionary(commandDict)

    message,messageCount = makeMessage(commandMessage)

    print(dictionary)
    print(message)

    i = 0
    while count < messageCount:
        translation = translate(message[i],dictionary,messageCount)
        print(translation)
        count = count + 1
        i = i +1
    main()

Und hier ist meine support.py Datei, die ich mit...

from scanner import *

def makeDictionary(filename):
    fp = open(filename,"r")

    s = Scanner(filename)
    lyst = []
    token = s.readtoken()
    count = 0
    while (token != ""):
        lyst.append(token)
        string = s.readstring()
        count = count+1
        lyst.append(string)
        token = s.readtoken()
    return lyst,count

def translate(word,dictionary,count):
    i = 0
    while i != count:
        if word == dictionary[i]:
            return dictionary[i+1]
            i = i+1
        else:
            return word
            i = i+1
    return 0

def makeMessage(filename):
    fp = open(filename,"r")

    s = Scanner(filename)
    lyst2 = []
    string = s.readtoken()
    count = 0
    while (string != ""):
        lyst2.append(string)
        string = s.readtoken()
        count = count +  1
    return lyst2,count

Weiß jemand, was ist denn hier Los? Ich habe mir mehrmals durch und ich weiß nicht, warum readString wirft diesen Fehler... es ist wahrscheinlich etwas blöd, ich verpasste

  • Was Charakter, genau erwartest du chr(0x2018) zu vertreten?
  • Die Fehlermeldung zeigt deutlich, dass das problem kommt in scanner.py. Ist, dass der code auf Ihren professor schrieb? Welche version von Python benutzt du? Welche version von Python hat Ihr professor sagen Sie zu verwenden?
InformationsquelleAutor | 2014-12-06
Schreibe einen Kommentar