비슷한 질문을 살펴 보았지만 여전히 동일한 문제가 발생하고 있습니다. 이 프로그래밍 할당을 위해 Clite 어휘집의 작은 하위 집합에 대한 간단한 어휘 분석 버전을 작성합니다. 입력 파일에서 토큰을 추출하여 분석 결과를 출력합니다. 사전을 사용하여 발견 된 식별자에 대한 심볼 테이블을 생성합니다. 다른 행에서 동일한 식별자를 찾으면 심볼 테이블에 발견 된 행을 추가해야합니다. 예를 들어, 2 행에서 7 행으로 식별자 "number18"을 찾습니다. 따라서 기호 테이블은 {number18 : 2}에서 {number18 : 2,7}로 이동해야합니다.Python 오류 : AttributeError : 'int'객체에 'append'속성이 없습니다.
문제는 다음과 같습니다. 현재의 사전 항목에 새 행 번호를 추가하십시오. 내가 질문 제목에 게시 할 때 오류가 발생합니다. 여기 내 코드는
y = 0
s2 =()
stable = dict()
for line in open("Sample.txt","r"):
x1 = ''
for char in line:
if char.isalpha():
x1 = x1 + char
elif char.isdigit():
x1 = x1 + char
elif char == '.':
x1 = x1 + char
elif x1 != '':
break
#print (x1)
if (x1 == "for" or x1 == "bool" or x1 == "char" or x1 == "else" or x1 == "false" or x1 == "float" or x1 == "if" or x1 == "int" or x1 == "main" or x1 == "true" or x1 == "while"):
s2=(y,"Keyword",x1)
elif x1.isidentifier():
s2=(y,"Identifier",x1)
if x1 in stable.keys():
stable[x1].append(y)
else:
stable[x1]=y
elif x1.isdigit():
s2=(y,"Int",x1)
else:
s2=(y,"Float",x1)
print (s2)
y=y+1
print (stable)
향후 예외의 * 전체 * 추적을 포함시켜 문제의 원인이 무엇인지 추측 할 필요가 없습니다. –
아마도 'defaultdict'를 사용해야 할 것입니다. –