게시판

검색 결과: 40

 

안녕하세요

24.5 문제 풀이 검토 과정에서 의문점이 생겨 질문드립니다.

검토 내용에서 단어 앞 뒤에 존재하는 , 과 . 를 삭제한 후 the와 비교한다고 하였는데, the 뒤에 다른 punctuation이 존재하는 경우는 고려하지 않은 것이 아닌지 의문입니다. 예를 들어, 대화 중 비속어이지만  'What the!' 라는 대사가 존재할 경우 이는 세지 못하는데, 어떻게 생각하시는지요?

, 도장_ 관리자님이 작성
 

포럼 상단 오른쪽 검색에 24.5로 검색하면 이미 질문과 답변이 많이 있으니 참고하세요.

https://dojang.io/mod/forum/discuss.php?d=1242&parent=2805


, 최 상규님이 작성
 


paragraph = input().split()

count = 0

for words in paragraph:

    tmp = words.strip(',.')

    if tmp == 'the':

        count+=1

    print(count)

한가지 질문 있습니다. 

IDLE실행하면 6이 나오나 코딩도장에서는 오답으로 나옵니다. 왜 그런걸까요?


 

포럼 상단 오른쪽 검색에 24.5로 검색하면 이미 질문과 답변이 많이 있으니 참고하세요.

https://dojang.io/mod/forum/discuss.php?d=1242&parent=2805

이 문제는 나만 겪는 문제가 아닐 가능성이 매우 크기 때문에 검색하시면 참고할 게 있습니다. 현업 개발자들도 구글에서 많은 검색을 하죠.


, 조 현준님이 작성
 

안녕하세요. 심사문제 24.5 특정 단어 갯수 세는거 하고 있습니다.

c=input().split()

count=0


for word in c:

    word.strip(',.')

    print(word)

    if word=='the':

        count=count+1

        

print(count)


위와 같이 Code 세웠는데 strip이 안되는거 같습니다. word 가 for문에서 list 받으면 문자열로 받아서 될꺼 같은데 안되는 이유를 모르겠어서 질문 드립니다ㅠ


, 도장_ 관리자님이 작성
 
>>> word = 'the,'
>>> word.strip(',')
'the'
>>> word
'the,'
>>>

strip()을 호출한 결과는 나오지만, 그 결과를 저장하지 않았으니까 결과를 출력하고 결과는 사라집니다.

즉, word는 변경되지 않은 상태 그대로입니다.


, 이 태성님이 작성
 

par = input().split()


count = 0


for word in par:

    word.strip(',.')

    if word == 'the':

        count += 1

    else:

        continue


print(count)


이렇게 코드 입력했는데 왜 자꾸 4가 나올까요?

, 도장_ 관리자님이 작성
 

10.1.2를 보면 list()는 파이썬의 함수입니다.

만일 list 변수를 선언하면 list 함수를 쓸 수 없게 됩니다.


, 전 역하자님이 작성
 

import string
str = input()
_str = str.strip('')

list1 = []
list1= _str.split()

print(list1)

count = 0
for i in range(len(list1)):
    list1[i].strip(string.puctuation)
    if list1[i] == 'the':
        count +=1

print(list1)

print(count)

list1[i] = 파라미터로 해서 'the'와 비교하면 답이 나오고,
list[i] 자체로 비교하면 왜 안되나요?

, 도장_ 관리자님이 작성
 

UNIT 24.5 문제 질문이네요.

포럼 오른쪽 상단에서 24.5로 검색하면 이전 답변을 통해 문제점을 미리 파악할 수 있습니다.

https://dojang.io/mod/forum/search.php?id=7&search=24.5

이전 답변 중에 재인용한다면...

'the.'인 문자열은 찾아서 카운트할 수 있지만, 'the....'이나 'the,,,,,'인 문자열은 찾아서 카운트할 수 없습니다. strip으로 정상적으로 ,과 .을 제어했을 때만 심사를 통과할 수 있습니다.

IDLE에서는 결과가 바로 나오지만, 스크립트 파일로 할 때는 결과를 바로 비교하거나 다른 변수에 저장해야 합니다.

>>> word = 'the,,,,,,'
>>> word.strip(',')
'the'
>>> word
'the,,,,,,'
>>>

word.strip()을 해도 결과를 저장하지 않았으니까 word는 변경되지 않은 상태로 값을 저장하고 있습니다.

strip을 올바르게 사용하고, 결과를 비교하거나 저장해서 사용하지 않으면 심사문제를 통과할 수 없습니다.