파이썬 질문

조회수 590회
def Greeting(sentence) :

    Greeting_Keywords = ["ㅎㅇ","하이","안녕","안뇽"]

    Greeting_Responses = ["ㅎㅇ","하이","안녕","안녕하세요"]

    for word in sentence:
        if word.lower() in Greeting_Keywords :
            return random.choice(Greeting_Responses)

question = input('입력: ')

print(Greeting(question))

파이썬으로 챗봇을 구현하려고 하는데 실행하면

입력: 안녕
None

이렇게 나오네요.
특정 구문이 포함된 문장을 입력하면 설정해둔 답변 중 하나가 나오게 하고 싶은데 어떻게 하면 될까요?

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    여기서 for word in sentence 하시면 sentence가 문자열이기 때문에 입력한 문자열의 각 글자에 대해서 반복 수행을 합니다. 결과가 None이 나와도 이상하지 않죠.

    원하시는 것은 아마도 Greeting_Keywords에 대해서 반복을 돌면서 sentence.lower()에 그 인사 키워드가 포함돼 있는지를 체크하는 것일 겁니다. 데모를 짜 보았으니 Run 돌려서 확인해 보시고 참고하세요.

    • 우와 감사합니다ㅠㅠ!!! 박민아 2018.10.16 01:48

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)