if 조건문에서 조건을 리스트 형식으로 여러가지 넣을수는 없을까요?

조회수 1036회
def chat():
    print('start chatbot')
    while True:
        inp = input("user :")

        if inp == "종료":
            print('챗봇 서비스를 종료합니다.')
            break

        data = "안녕하세요"or"안녕"or"하이"
        if data:

            print("무엇을 도와드릴까요?")
        else:
            print('다시한번 말씀해 주시겠습니까?')

chat()

input으로 들어오는 값이 '안녕하세요',' 안녕', '하이' 일때는 "무엇을 도와드릴까요??"
다른 값이 들어오면 "다시 한번 말씀해 주시겠습니까??"

로 하고싶은건데 ㅜㅜ 잘 모르겠네요

저렇게 하면 입력이 들어가면 어떤 입력이든 '무엇을 도와드릴까요'가 나오네요 ㅜ
for 문을 사용해야할까요 ㅜㅜ 어디가 틀린걸까요

2 답변

  • data = ['안녕', '안녕하세요', '하이']
    if inp in data:
        print('무엇을 도와드릴까요?')
    
  • 작성하신 코드가 항상 '무엇을 도와드릴까요?'만 나오는 이유는 아래 코드에서 data의 값이 boolean 인 true 이기 때문 입니다.

    def chat():
        print('start chatbot')
        while True:
            inp = input("user :")
    
            if inp == "종료":
                print('챗봇 서비스를 종료합니다.')
                break
    
            data = "안녕하세요"or"안녕"or"하이" # 여기에서 data는 true로 설정 됨
            if data: 
                # data가 true 이므로, 항상 이곳을 실행
                print("무엇을 도와드릴까요?")
            else:
                print('다시한번 말씀해 주시겠습니까?')
    
    chat()
    

    원하시는 대로 작동 되게 하려면,

    def chat():
        print('start chatbot')
        while True:
            inp = input("user :")
    
            if inp == "종료":
                print('챗봇 서비스를 종료합니다.')
                break
    
            data = ["안녕하세요", "안녕", "하이"]
            if inp in data:
                # 입력 받은 문자가 data 리스트 안에 있으면 수행
                print("무엇을 도와드릴까요?")
            else:
                # 없으면 이곳을 수행
                print('다시한번 말씀해 주시겠습니까?')
    
    chat()
    
    • (•́ ✖ •̀)
      알 수 없는 사용자

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

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

(ಠ_ಠ)
(ಠ‿ಠ)