27.6심사 문제
, 김 연성님이 작성with open('words.txt', 'r') as file:
x = file.split()
x = x.strip(',.')
for i in x:
if 'c' in i:
print(i)
이렇게 작성했는데 어디가 틀린지 알고싶습니다.
Re: 27.6심사 문제
, 도장_ 관리자님이 작성해설의 순서대로 코드를 작성하면 됩니다.
open으로 words.txt 파일을 연 뒤 read로 파일의 내용을 읽어옵니다. 그다음에 split()으로 읽어온 문자열을 공백을 기준으로 분리하여 리스로 만듭니다.
리스트가 준비되었으면 for로 반복하면서 단어에 c가 들어있는지 판단합니다. 여기서 단어에 c가 들어있는지 판단하려면 'c' in 단어와 같이 in 연산자를 사용하면 됩니다.
마지막으로 찾은 단어를 출력할 때는 ,(콤마)와 .(점)은 출력하지 않아야 하므로 strip(',.')를 사용하여 콤마와 점을 삭제한 뒤 print로 출력해야 합니다.strip을 마지막 단계에서 처리하고 print로 출력합니다.
strip을 먼저 처리하면 안 됩니다.
>>> s = "Fortunately, however, for the reputation of Asteroid B-612, a Turkish dictator made a law that his subjects, under pain of death, should change to European costume. So in 1920 the astronomer gave his demonstration all over again, dressed with impressive style and elegance. And this time everybody accepted his report."
>>> s.strip('.,')
'Fortunately, however, for the reputation of Asteroid B-612, a Turkish dictator made a law that his subjects, under pain of death, should change to European costume. So in 1920 the astronomer gave his demonstration all over again, dressed with impressive style and elegance. And this time everybody accepted his report'
>>>
strip을 사용하면 입력의 끝인 report.이 report로 수정된 것을 확인할 수 있습니다. UNIT 24.1.12에서 설명하지만 strip 함수는 단어의 앞뒤에 있는 공백이나 특정 문자를 삭제하는 데 쓰입니다. 입력 문자열 전체에 대해서 모든 공백이나 특정 문자를 삭제하는 함수가 아닙니다.