나는 파이썬 챌린지 ARG를위한 초보자 파이썬 스크립트를 작성 중이다. 기본적인 목표는 대용량의 텍스트를 읽을 수있는 스크립트를 작성하고 정확히 3 개의 대문자가있는 소문자 만 통과시키는 것입니다. 스크립트는 목록에서 들어오는 문자를보고 다음 3 자 및 이전 3자를 목록에 저장합니다. 이런 일이 발생하면 스크립트는 들어오는 문자가 대문자인지 아닌지를 평가합니다. 루프가 시작되면 스크립트는 그렇지 않으면 목록의 세 문자가 모두 대문자인지 평가합니다. 조건이 충족되면 스크립트는 현재 문자를 인쇄해야합니다. 그렇지 않으면 루프가 다시 시작됩니다.Python 스크립트가 무한 루프에 걸려있다
이 스크립트를 실행할 때마다 코드에 대한 디버그/오류/경고가 표시되지 않지만 파일을 완성하거나 전혀 쓰지 않습니다.
여기 제가 작성한 코드입니다. 도움을 주시면 감사하겠습니다.
#code, where f = text to be processed, d = text file to be written to
f = open("test.txt", "r+")
f = f.read()
fList = list(f)
limit = len(fList)
#Set location of result
d = open("noided.txt", "r+")
i, j, k = [0, 0, 0]
#Main loop
#While there are characters left to be processed
while i < limit:
#Skip the first 4 characters
if i < 4:
#print i, fList[i]
i += 1
else:
#print i, fList[i]
currentChar = fList[i]
count = 0
prevChars = [fList[i-1],fList[i-2],fList[i-3]]
nextChars = fList[i:i + 3]
if currentChar.isupper():
i += 1
else:
while k < 3:
if prevChars[k].isupper() and nextChars[k].isupper():
count += 1
k += 1
elif count == 3:
print currentChar
d.write(currentChar)
i += 1
else:
i += 1
여기서 변수는 'i'입니다. ,'limit'과'k'가 초기화 되었습니까? 코드의 들여 쓰기가 정확하지 않은 것처럼 보입니다. –
들여 쓰기를 수정하십시오. 'else'는 아마도'if'에 속할 것이고'while'에 속하지 않을 것입니다 (또한 가능하지만이 컨텍스트에서는 그렇지 않습니다). 또한,'&'는 비트 단위이며,; 작동하는 동안, 여기에서도 역시'and'를 원할 것입니다. –
그건 들여 쓰기가 안 좋았고, 눈치 채지 못했지만 편집장에서 첫 번째 질문에 대답하는 것과 같지 않았습니다. 예를 들어 모든 변수가 초기화되었습니다. 여기에 표시되지 않았습니다. –