티스토리 뷰

728x90
반응형

유데미 강의 내용

학습 목적:  리스트, random , len , for , while , if

설명 : 단어 를 정하고  , 단어의 스펠링 의 숫자 만큼 입력 받아 , 정해진 단어와 비교 후 모두 맞추면 승리

순서 설명

- 1.  3개의 단어를 list 에 넣어 random.choice 로 고르고 

  2.  고른 단어를 len 으로 길이를 구한다.

  3. 구해진 길이 만큼 '_'( 밑 줄) 을 출력해 몇개의 스펠링으로 된 단어인지 제시해준다.

  4. while 문으로  모든 스펠링이 맞을때 까지 반복되고 단어를 완성시키면 종류 시켜 준다.

  5. input 으로 입력을 받아 구해진 단어 의 스펠링 과 비교 하는  반복문 과 비교문 을 작성한다.

      - input 문 으로 입력 받은 스펠링이 맞을 경우 해당 위치에 맞았 다는 표시를 위해

        for 문과 if 문으로   list 를 사용해 그 위치에 입력 값을 넣어주고 출력 한다.

   6. 모든 스펠리이 맞아 단어가 완성 되면 프로그램 을 종료 한다.  

      

                  

# step 1 : 단어 리스트 생성
word_list = ["ardvark", "baboon", "camera"]

# Todo - Randomly : random 함수 를 사용 하도록 import 한다.
import random   

# Randoml : random 함수를 이용해 리스트 의 단어 중 하나를 가져온다.
chosen_word = random.choice(word_list)
print(chosen_word)

# length : len 으로 골라온 단어에 길이를 구한다.(배열)
word_length = len(chosen_word)

# print chosen_word to '_' : for문 으로 단어의 길이 만큼 '_' 을 출력 한다.
display = []
for _ in range(word_length):
    display += ['_']
print(display)

# while condition is False : while 로 반복 하도록 'False 값을 갖는 변수 선언
end_of_game = False

# while loop : while 으로 True 일 때 까지 반복 시킨다.
while not end_of_game:

# input Text : input 으로 입력받고 소문자로 불러드린다.
guess   = input("Guess a letter: ").lower()

# for : position 변수 에 단어의 길이 만큼 반복과 단어의 배열 위치에 스펠링을 비교 후 참 이면 출력
    for position in range(word_length):   # 단어의 길이만큰 for 문 실행
        letter = chosen_word[position]    # 추출한 단어에 배열 주소지정하고 letter에 넣는다.
        if letter == guess:               # letter 배열주소에 입력받은 값이 맞는지 비교
            display[position] = letter    #  참이면 display변수에 문자길이 만큼의 배열을 만들고
                                          #  입력 값을 넣어 준다.
    print(display)      # display 변수 의 값을 출력 (for,if 통해 넣은 배열 에 스펠링을 출력)


    if "_" not in display:          # display 변수 배열에 '_' 이 없으면 
            end_of_game = True      #  True 을 넣고 "You win." 을 출력후 while 탈출
            print("You win.")

 

728x90
반응형
댓글