오늘도 어제에 이어서 “한 번에 끝내는 파이썬 웹 개발 초격차 패키지 Online” 의 챕터 5-6. 반복문 실습문제(2)을 듣고 정리해보았다. 참고로 이 포스팅은 공부용으로 강의 내용을 요약한 것으로 자세한 강의 내용은 위 링크를 참조 할 것.



아래는 공부 인증 사진.


2022-05-02-Python-Photo1

2022-05-02-Python-Photo2



9. 반복문 실습문제(2)

1. 실습문제 5.3.3

  • 성민은 패스트대학교에 Lily 라는 이름의 교환학생과 친해지게 되었다. 영어를 잘 하지 못했던 성민은, Lily에게 한국어를 가르쳐주기 위해 한국어 연습 프로그램을 만들게 되었다.
    • Learning Korean -
  1. 연습할 한국어가 담긴 리스트를 만든다.
  2. 리스트에서 순서대로 단어를 가져와 화면에 출력한다.
  3. 프로그램 사용자는 단어를 그대로 입력하고
  4. 맞추면 다음 단어를 가져온다. 틀리면 프로그램 종료.

  • 결과 화면
Let's Learning Korean
사랑해
사랑해
귀엽다
귀엽다
고마워
고마워
행복해
행복해



[내 풀이] - 실패

  • 리스트를 만들어 준 뒤, while 구문으로 리스트가 끝날 때까지 반복구문을 생성
  • input 값과 print 된 값이 일치하지 않을 때(틀릴때) 프로그램 종료
# 리스트 만들기 => []
# 리스트 순서대로 단어를 가져와 화면에 출력 => print
# 사용자는 단어를 그대로 입력 => input
# 맞추면 다음 단어를 가져온다. => if
# 틀리면 프로그램 종료 => while True & break

korean = ["사랑해", "귀엽다", "고마워", "행복해"]

print("Let's Learning Korean")

i = 0
while i < len(korean):
    x = print(korean[i])
    y = input("")
    if x == y:
        i += 1
    else:
        break

  • 출력 결과: print된 문자열과 동일하게 입력했으나 프로그램이 종료되는 현상이 발생했다.
    • for in 문으로 바꿀 경우에는 break가 되지 않는 현상이 발생함
    • for in 문 사용해야함
    • 불필요한 변수를 사용해 조건문이 적용이 잘 되지 않아 발생한 오류
(myvenv) ➜  python_basic /Users/usr/Documents/pyt
hon_basic/myvenv/bin/python /Users/usr/Documents/
python_basic/myvenv/Chapter5/14-1.실습문제5.3.4.py
Let's Learning Korean
사랑해
사랑해
(myvenv) ➜  python_basic



[강의 해설]

  • 리스트 생성
  • 시퀀스 자료형 ⇒ for in 문 사용
  • print로 리스트에 담긴 word들을 출력해보자.
# 실습문제 5.3.3
# Learning Korean

# 한국어 리스트
word_list = ["사랑해", "귀엽다", "고마워", "행복해"]

print("Let's Learning Korean")

for word in word_list:
    print(word)

  • 출력 결과
(myvenv) ➜  python_basic /Users/usr/Documents/pyt
hon_basic/myvenv/bin/python /Users/usr/Documents/
python_basic/myvenv/Chapter5/14-2.실습문제5.3.4-해설.p
y
Let's Learning Korean
사랑해
귀엽다
고마워
행복해

  • 입력값을 받아줄 수 있도록 input()을 생성한다.
# 실습문제 5.3.3
# Learning Korean

# 한국어 리스트
word_list = ["사랑해", "귀엽다", "고마워", "행복해"]

print("Let's Learning Korean")

for word in word_list:
    print(word)
    data = input()

  • 출력 결과
    • 입력값을 받을 때까지 기다린다.
    • 틀린 값을 받아도 실행이 된다.
(myvenv) ➜  python_basic /Users/usr/Documents/pyt
hon_basic/myvenv/bin/python /Users/usr/Documents/
python_basic/myvenv/Chapter5/14-2.실습문제5.3.4-해설.p
y
Let's Learning Korean
사랑해
사랑해
귀엽다
ㅇㅇㅇ
고마워

  • 화면에 출력된 값(word)와 입력된 값(data)가 일치하지 않을 경우 프로그램이 종료되도록 If 문과 break를 입력해준다.
# 실습문제 5.3.3
# Learning Korean

# 한국어 리스트
word_list = ["사랑해", "귀엽다", "고마워", "행복해"]

print("Let's Learning Korean")

for word in word_list:
    print(word)
    data = input()
    if data != word:
        break

  • 출력 결과

    (myvenv) ➜  python_basic /Users/usr/Documents/pyt
    hon_basic/myvenv/bin/python /Users/usr/Documents/
    python_basic/myvenv/Chapter5/14-2.실습문제5.3.4-해설.p
    y
    Let's Learning Korean
    사랑해
    사랑해
    귀엽다
    귀여워



코드 업그레이드 과제

  • 실습문제 5.3.4 에서 문제를 틀릴 경우 프로그램을 종료하지 않고 전체 문제 개수, 맞힌 문제 개수, 틀린 문제 개수를 출력하게 한다.
    • 전체 문제 개수: 4 개
    • 맞힌 문제 개수: 2 개
    • 틀린 문제 개수: 2 개

[내 풀이]

  • 점수를 담을 변수를 각각 선언해준 뒤,
  • 정답일 경우 correct += 1, 오답일 경우 incorrect +=1 하도록 조건을 달아주었다.
# 실습문제 5.3.3
# Learning Korean

# 한국어 리스트
word_list = ["사랑해", "귀엽다", "고마워", "행복해"]

print("Let's Learning Korean")

# 각 변수를 선언한 뒤, 초기값을 선언해준다.
total = len(word_list)
incorrect = 0
correct = 0

for word in word_list:
    print(word)
    data = input()
    if data != word:
        # 문제를 틀릴 경우 틀린 개수 +1
        incorrect += 1
    else:
        # 문제를 맞출 경우 맞춘 개수 +1
        correct += 1

# 전체 문제 개수: 4 개
# 맞힌 문제 개수: 2 개
# 틀린 문제 개수: 2 개 (break 하지 않음)
print("전체 문제 개수:", total, " 개")
print("맞힌 문제 개수:", correct, " 개")
print("틀린 문제 개수:", incorrect, " 개")

  • 출력 결과
(myvenv) ➜  python_basic /Users/usr/Documents/pyt
hon_basic/myvenv/bin/python /Users/usr/Documents/
python_basic/myvenv/Chapter5/14-2.실습문제5.3.4-해설.p
y
Let's Learning Korean
사랑해
사랑해
귀엽다
귀엽다
고마워
곰 아워
행복해
행볶해
전체 문제 개수: 4  개
맞힌 문제 개수: 2  개
틀린 문제 개수: 2



[강의 해설]

# 실습문제 5.3.4
# Learning Korean ver 2.0

# 한국어 리스트
word_list = ["사랑해", "귀엽다", "고마워", "행복해"]

# 점수
score = 0

print("Let's Learning Korean")

for word in word_list:
    print(word)
    data = input()
    if data == word: # 정답일 경우
        score += 1 # 점수를 1 증가

print("전체 문제 개수 : ", len(word_list))
print("맞힌 개수 : ", score)
print("틀린 개수 : ", len(word_list) - score)

# 전체 문제 개수: 4 개
# 맞힌 문제 개수: 2 개
# 틀린 문제 개수: 2 개
  • 점수 변수를 하나만 선언해 활용했다.

  • 출력 결과
(myvenv) ➜  python_basic /Users/usr/Documents/pyt
hon_basic/myvenv/bin/python /Users/usr/Documents/
python_basic/myvenv/Chapter5/14-2.실습문제5.3.4-해설.p
y
Let's Learning Korean
사랑해
사랑해
귀엽다
귀엽다
고마워
고맙
행복해
행복
전체 문제 개수 :  4
맞힌 개수 :  2
틀린 개수 :  2

이번 포스팅에서는 반복문 실습문제를 풀어보았다. 다음 포스팅에서는 반복문 실습문제(2)를 풀어보도록 하자.



본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #캐시백챌린지 #캐시백 #환급챌린지 #한번에끝내는파이썬웹개발초격차패키지Online