티스토리 뷰
오랜만에 파이썬 언어 응용문제를 풀었다. 작년 9월 경 처음 파이썬을 접했을 때 어려워서 포기했던 문제였다.
9개월 후. 지금 까지 들었던 코드잇 강의들을 둘러보다가 학습 완료 체크가 안된게 눈에 걸려서 휘리릭 풀어보기로.
언뜻보고 쉬워보여서 5분만에 코드를 짤 수 있겠거니 했는데, 30분은 걸렸다 ㅜㅜ
요즘에 파이썬을 자주 안썼더니만... 디테일한 문법도 까먹었고, 코드 논리 짜는 데에서 버벅였다.
'인간의 언어로 먼저 논리를 풀어내나가는 단계'를 거쳐야 하는데 바로 코드부터 짰다.
thought process를 먼저 정리하고 코드를 짜야함, 계속해서 computational thinking을 연습하면서 익숙해져야함 (언젠가는 익숙해지겠지...)
다음은 실제 문제를 풀면서 고려한 사항.
반복문:
while은 조건을 만족할 때 까지 반복 - booleans, for은 횟수나 리스트를 반복할 때
- The for statement iterates through a collection or iterable object or generator function.
- The while statement simply loops until a condition is False.
변수
- 남은 기회(tries)와 사용한 기회(guess)를 변수에 담아줌.
조건문
- 조건을 나열하는 순서가 중요!: 가장 먼저 tries == 0 인지 확인하여 반복문을 순환할 것인지 판단해줬다.
크게 경우를 나누고, 점차적으로 세분화 시키는 접근
함수
- return으로 반복문에서 빠져나올 수 있었음. 다른 사람들의 답안을 봤을 때, while loop을 사용한 경우에는 조건(tries > guess)과 break문을 사용하기도 했음
import random
correct_answer = random.randint(1, 20)
print(f'correct_answer: {correct_answer}')
def game():
tries = 4
guess = 1
while tries >= 0:
if tries == 0:
return print(f"아쉽습니다. 정답은 {correct_answer}입니다.")
if tries > 0:
user = int(input(f'기회가 {tries}번 남았습니다. 1-20 사이의 숫자를 맞혀 보세요:'))
if user == correct_answer:
return print(f"축하합니다. {guess}번 만에 숫자를 맞히셨습니다.")
elif user < correct_answer:
print("Up")
elif user > correct_answer:
print("Down")
tries -= 1
guess += 1
game()
'Python' 카테고리의 다른 글
Flask app: RESTful-blog (0) | 2021.07.07 |
---|---|
Flask app: cafe_api (0) | 2021.07.05 |
Flight Deal (0) | 2021.06.21 |
TIL Python Basics Day 30 - Errors, Exceptions and JSON Data (0) | 2021.06.17 |
Udemy Python Pro Bootcamp by Angela Yu (0) | 2021.06.07 |
댓글