그래서 저는 파이썬을 배우고 오래된 프로젝트를 다시하고 있습니다. 이 프로젝트는 명령 줄에서 번역 할 메시지와 사전을 가져 와서 메시지를 번역하는 작업입니다. (예 : "btw, hello how ru"는 "안녕하세요 어떻게 지내십니까?"Python ValueError : chr() arg가 범위를 벗어남 (256)
Google은 교수가 제공 한 스캐너를 사용하여 토큰과 문자열을 읽습니다. 필요한 경우 . 너무 여기에 게시 Heres는 내 오류 :
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)
는 Heres는 내 주요 translate.py 파일 : 여기
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()
그리고는 내가 사용하고 내 support.py 파일입니다 ...
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
,
여기에 무슨 일이 일어나는 지 아는 사람이 있습니까? 나는 여러 번 살펴 봤는데 왜 readString이이 오류를 던지고 있는지 모르겠다 ... 그게 아마도 어리석은 내가 놓친 ...
정확하게 'chr (0x2018)'이 (가) 나타낼 것으로 예상되는 문자는 무엇입니까? –
오류 메시지는 'scanner.py'에 문제가 있음을 명확하게 보여줍니다. 교수님이 작성한 코드입니까? 어떤 버전의 파이썬을 사용하고 있습니까? 교수님이 사용할 파이썬 버전은 무엇입니까? –