본문 바로가기
Python

if문 심리테스트로 포켓몬 정해주는 코딩

by Nirah 2023. 1. 13.

질문 두개짜리 심리테스트 하면 포켓몬 스타팅을 정해주는 코딩을 만들어보고 싶었다.

객관식 답 이외에 입력하면 오답처리 하고 뒤로 돌려보내는 기능도 넣고싶다.

만들고 싶은건 바로 만들어보기로 했다.


Q1 = int(input("당신은 피크닉을 간다면 어디가 좋습니까 ? \n 1)숲 2)해변 3)화산 :"))

#오답처리
if Q1 > 3:
    print("1, 2, 3 중에 입력해 주세요.")
    Q1 = int(input("당신은 피크닉을 간다면 어디가 좋습니까 ? \n 1)숲 2)해변 3)화산 :"))
elif Q1 < 4:
    Q2 = int(input("당신은 과거와 미래 중 어느쪽이 중요하다고 생각합니까 ? \n 1)과거 2)미래 :"))

if Q2 > 2:
    print("1, 2 중에 입력해 주세요.")
    Q2 = int(input("당신은 과거와 미래 중 어느쪽이 중요하다고 생각합니까 ? \n 1)과거 2)미래 :"))
elif Q2 < 3:
    print('''지금부터 당신의 파트너 포켓몬을 정해드리겠습니다!''')

#풀

if Q1 == 1 and Q2 == 1:
    print('''당신에겐 풀타입 포켓몬이 어울리겠군요. \n그런 당신의 포켓몬은'이상해씨'입니다!''')
elif Q1 == 1 and Q2 == 2:
        print('''당신에겐 풀타입 포켓몬이 어울리겠군요. \n그런 당신의 포켓몬은'치코리타'입니다!''')
        
#물

elif Q1 == 2 and Q2 == 1:
    print('''당신에겐 물타입 포켓몬이 어울리겠군요. \n그런 당신의 포켓몬은'꼬북이'입니다!''')
elif Q1 == 2 and Q2 == 2:
    print('''당신에겐 물타입 포켓몬이 어울리겠군요. \n그런 당신의 포켓몬은'리아코'입니다!''')
    
#불

elif Q1 == 3 and Q2 == 1:
    print('''당신에겐 불타입 포켓몬이 어울리겠군요. \n그런 당신의 포켓몬은'파이리'입니다!''')
elif Q1 == 3 and Q2 == 2:
    print('''당신에겐 불타입 포켓몬이 어울리겠군요. \n그런 당신의 포켓몬은'브케인'입니다!''')

 

 

그런데 이렇게 if로만 코딩하고 나니까 각 경우의수 마다 겹치는 정보가 많아서 비효율적이어 보인다.

코딩 공부 시작한지 3일차라 아는 함수가 별로 없어서 어쩔수 없이 모든 경우의 수를 써서 만든 것이다.

그래서 이걸 어떻게 하면 더 깔끔하고 가볍고 효율적이게 줄일수 있을까 고민하다가

파이썬 6개월 해봤다는 학생분께 도움을 받아 힌트를 얻었다.

얻은 힌트를 바탕으로 다시 제작해보기로 한다.

 

 

 

 

 

 

보기에 없는 숫자를 고르면 처음 질문으로 루프한다.

 

https://responding.tistory.com/47

'Python' 카테고리의 다른 글

연속형 데이터 연습  (0) 2023.01.16
반복문 연습  (0) 2023.01.16
string, 내장함수, random 명령어 연습  (1) 2023.01.13
변수 문제 풀이  (0) 2023.01.12
연산자  (0) 2023.01.12