[내일배움캠프 사전캠프] '25.07.22(화) / 사전캠프 2주차(2)

1. 오늘의 학습 키워드

  • python 응용하기 : Lv3. 단어 맞추기 게임

 

 

2. 오늘의 학습 내용 정리

단어 리스트 중 정답을 정하고, 이를 맞추는 코드를 작성한다. 그리고 정답을 맞출 기회를 정하고 맞췄을 시 정답, 틀렸을 시 오답, 기회가 끝났을 시 게임오버을 출력하도록 한다.
import string

# 단어 리스트
word_list = [
    "airplane", "apple", "arm", "bakery", "banana", "bank", "bean", "belt", "bicycle", "biography",
    "blackboard", "boat", "bowl", "broccoli", "bus", "car", "carrot", "chair", "cherry", "cinema",
    "class", "classroom", "cloud", "coat", "cucumber", "desk", "dictionary", "dress", "ear", "eye",
    "fog", "foot", "fork", "fruits", "hail", "hand", "head", "helicopter", "hospital", "ice",
    "jacket", "kettle", "knife", "leg", "lettuce", "library", "magazine", "mango", "melon", "motorcycle",
    "mouth", "newspaper", "nose", "notebook", "novel", "onion", "orange", "peach", "pharmacy", "pineapple",
    "picture", "plate", "pot", "potato", "rain", "shirt", "shoe", "shop", "sink", "skateboard",
    "ski", "skirt", "sky", "snow", "sock", "spinach", "spoon", "stationary", "stomach", "strawberry",
    "student", "sun", "supermarket", "sweater", "teacher", "thunderstorm", "tomato", "trousers", "truck",
    "vegetables", "vehicles", "watermelon", "wind"
]

 

  • 코드는 아래와 같다. (더보기 클릭)
더보기
# 정답 단어 고정
answer = "POTATO"  # 대문자로 고정
answer_letters = set(answer)
guessed_letters = set()
lives = 9

# 게임 시작
print("🎮 영어 단어 맞추기 게임을 시작합니다!")
print(f"힌트: 단어는 {len(answer)}자리입니다.")

# 게임 루프
while lives > 0:
    # 현재 상태 표시
    display_word = [letter if letter in guessed_letters else "_" for letter in answer]
    print("\n현재 단어:", " ".join(display_word))

    # 승리 조건
    if set(display_word) == answer_letters:
        print("🎉 축하합니다! 단어를 모두 맞췄습니다!")
        print(f"정답: {answer}")
        break

    # 사용자 입력
    guess = input("알파벳을 입력하세요 (A-Z): ").upper()

    # 입력 검증
    if len(guess) != 1 or guess not in string.ascii_uppercase:
        print("⚠️ 올바른 알파벳 하나만 입력해주세요.")
        continue

    if guess in guessed_letters:
        print("⚠️ 이미 입력한 알파벳입니다.")
        continue

    guessed_letters.add(guess)
    if guess in answer_letters:
        print(f"✅ 정답! '{guess}'는 단어에 포함되어 있습니다.")
    else:
        lives -= 1
        print(f"❌ 오답! '{guess}'는 단어에 없습니다. 남은 기회: {lives}")

# 패배 조건
if lives == 0:
    print("\n💀 기회를 모두 사용했습니다. 게임 오버!")
    print(f"정답은 '{answer}'였습니다.")

 

  • 출력값은 아래와 같다.

 

 

 

3. 학습하며 겪었던 문제점 & 에러
이번 과제를 통해 느낀 것은 시도를 해보다 모를 경우에는 구글링을 통해 바로 알 수 있지만, 그래도 개발자 또는 분석가적인 사고능력을 트레이닝하는 연습도 필요할 것 같다는 생각을 해본다.

 

 

 

4. 내일 학습 할 것은 무엇인지

 

SQL 가독성을 높이는 다섯 가지 사소한 습관 | 요즘IT

지독하게 읽기 힘든 SQL 문을 해석해 본 적 있으신가요? 마치 암호를 읽는 것처럼 어렵습니다. 파이선처럼 들여쓰기와 띄어쓰기를 문법적으로 강제하는 언어를 사용해 봤다면 SQL의 자유로움에

yozm.wishket.com

 

끝.