오늘은 7월 6일 공부한 내용을 정리해보려고 한다.
파이썬 기초의 마지막인 반복문과
지금까지 공부했던 개념들의 연습문제를 풀었다.
문제 풀이 중 기억에 남는 것들 위주로 정리했다:)
반복문은 <횟수에 의한 반복>과 <조건에 의한 반복>으로 나뉘어지는데 횟수에 의한 반복은 대부분 for문으로, 조건에 의한 반복은 대부분 while문으로 작성한다.
for ~ in 키워드 반복횟수 :
실행문
형태로 작성되며
~는 하나의 변수로 횟수를 나타내고(0부터 시작함)
키워드 반복횟수는 대부분 range로 작성되지만, 자료구조 또한 사용할 수 있다.(자료구조 내용은 추후에 자료구조를 배우고 다시 추가하긔)
range(시작, 끝, 단계)
의 규칙을 가지며 시작과 단계 매개변수는 생략이 가능하다.
while ~ :
실행문
~에 해당하는 조건이 참일 때까지만 실행문을 실시한다.
cnt = 0
for i in range(100):
if i % 7 != 0:
continue
print("{}는 7의 배수입니다.".format(i))
cnt += 1
else:
print("99까지의 정수 중 7의 배수는 {}개 입니다.'.format(cnt))
continue를 만나면 해당 횟수에선 더이상 실행문을 실행하지 않고 바로 다음 횟수의 반복 실행을 시작한다.
else는 반복문이 다 종료된 후 실행된다.
num = 0
while True:
print("Hello~")
num += 1
if num >= 5:
break
반복 실행 중 break를 만나면 반복문을 즉시 빠져나온다.
파이썬[3](영어: Python)은 1991년[4] 네덜란드계 소프트웨어 엔지니어인 귀도 반 로섬[5]이 발표한 고급 프로그래밍 언어로, 플랫폼에 독립적이며 인터프리터식, 객체지향적, 동적 타이핑(dynamically typed) 대화형 언어이다. 파이썬이라는 이름은 귀도가 좋아하는 코미디인〈Monty Python's Flying Circus〉에서 따온 것이다.
🧑🏻💻문제 풀이🧑🏻💻
article = '파이썬[3](영어: Python)은 1991년[4] 네덜란드계 소프트웨어 엔지니어인 귀도 반 로섬[5]이 발표한 고급 프로그래밍 언어로, '\
'플랫폼에 독립적이며 인터프리터식, 객체지향적, 동적 타이핑(dynamically typed) 대화형 언어이다. 파이썬이라는 이름은 귀도가 좋아하는 '\
'코미디인〈Monty Python\'s Flying Circus〉에서 따온 것이다. '
idx = article.find('객체지향')
print('\'객체지향\' 문자열의 위치는 : {}입니다.'.format(idx))
💡find('찾고자하는 문자열') : 특정 문자열의 위치를 찾아 반환해주는 함수
BMI = 몸무게(kg) / (신장(m) * 신장(m))
🧑🏻💻문제 풀이🧑🏻💻
weight = input('체중 입력(g) : ')
height = input('신장 입력(cm) : ')
if weight.isdigit():
weight = int(weight) /10
if height.isdigit():
height = int(height) /100
bmi = weight / (height * height) #bmi = 몸무게(kg) / (신장(m) * 신장(m))
print("BMI : " %bmi)
💡isdigit() : 숫자면 True, 그 외이면 False를 반환해주는 함수
🧑🏻💻문제 풀이🧑🏻💻
import datetime
today = datetime.datetime.today()
myAge = input("나이 입력 : ")
if myAge.isdigit() :
afterAge = 100 - int(myAge)
myHundred = today.year + afterAge
else:
print('잘못 입력했습니다')
💡datetime 모듈로 날짜 계산이 가능
파이썬을 처음 배웠을 당시에는 하나의 프로그램을 짜기도 어려워했었다. 하지만 어느정도 익히다보니 이번 문제들을 풀 때는 문제 유형들이 익숙해진 상태라 그런지 프로그래밍 머리(?)를 쓸 줄 알게 된 것 같았다.
나는 항상 모든 일들을 시작할 때 머릿 속으로 처음부터 끝까지 일련의 과정들을 상상해보고 그대로 일이 해결하고자 했던 사람이었다. 아직까지도 이 성격이 남아있긴 하지만 프로그래밍을 배우면서 많이 고쳐진 것 같다.
하나의 프로그램을 짤 때에 무엇을 어떻게 구현하고자 할 지 상상하고 시작하는 것은 좋
은 습관이었다. 하지만 그 생각했던 사고에 사로잡혀, 쉬운 방법이 있음에도 어려운 방법을 택하기도 했고 내가 생각한 방식이 도저히 프로그램을 완성시킬 수 없을 땐 좌절감이 들기도 했다.(나는 프로그래머의 길이 아닌가..? 와 같은 ㅎㅎ)
나의 장점을 키워보자. 처음부터 끝까지 일련의 과정들을 생각해보는 것은 다시 말하면, 프로그램을 해결할 수 있는 많은 방법들을 생각해 낼 수 있다는 것이다.
그 이후부터 나는 하나의 프로그램을 만들고자 여러 방식들을 생각해내고 메모하기 시작했다. 이 방법이 안되면 그 다음. 이건 너무 복잡하다면 그 다음.
아 그리고 또 생각해보면 내가 생각한 알고리즘들이 프로그램에 적절한 것인지 사람들의 의견을 물어보는 것도 망설이지 않았었다.(그래서 프로그래밍을 혼자서보단 여럿이서 하는 것을 좋아한다. 여러 사람들의 이야기를 들을 수 있기 때문🥰) 그러다보니 미처 내가 생각지도 못한 부분을 깨닫게 되는 날들도, 나의 사고가 제일 적합하다고 인정받는 날들도 생겨났다.
프로그램을 짤 때 주석으로 Step1. Step2. 를 해가며 필요한 과정들을 적어두고 해당 코드를 짜고 실행했을 때 프로그램이 제대로 돌아가는 것을 보는 것은 퍼즐을 하나씩 맞춰나가는 재미와 더불어 말로 표현할 수 없는 희열이 느껴진다. 그래서 프로그래밍은 잠을 포기해서라도 포기할 수 없다.
큼큼... 벌써부터 과거 회상이 너무 짙어져서 주저리가 너무 많아진건 아닌가 걱정이지만ㅋㅋㅋ 이게 솔직한 오늘의 주저리였다!ㅎㅎ