[Python] Chapter01. 파이썬 기초(반복문) / Chapter02. 파이썬 기초 문제 풀이(~연산자)

황성미·2023년 7월 6일
0
post-thumbnail
post-custom-banner

오늘은 7월 6일 공부한 내용을 정리해보려고 한다.
파이썬 기초의 마지막인 반복문과
지금까지 공부했던 개념들의 연습문제를 풀었다.
문제 풀이 중 기억에 남는 것들 위주로 정리했다:)

반복문

반복문은 <횟수에 의한 반복>과 <조건에 의한 반복>으로 나뉘어지는데 횟수에 의한 반복은 대부분 for문으로, 조건에 의한 반복은 대부분 while문으로 작성한다.

횟수에 의한 반복(for문)

for ~ in 키워드 반복횟수 : 
	실행문

형태로 작성되며
~는 하나의 변수로 횟수를 나타내고(0부터 시작함)
키워드 반복횟수는 대부분 range로 작성되지만, 자료구조 또한 사용할 수 있다.(자료구조 내용은 추후에 자료구조를 배우고 다시 추가하긔)
range(시작, 끝, 단계) 의 규칙을 가지며 시작과 단계 매개변수는 생략이 가능하다.

조건에 의한 반복(while문)

while ~ :
	실행문

~에 해당하는 조건이 참일 때까지만 실행문을 실시한다.

반복문과 자주 쓰이는 키워드(continue, else, break)

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를 만나면 반복문을 즉시 빠져나온다.





연습 문제 풀이


다음 article에서 '객체지향' 문자열의 위치를 반환하는 프로그램을 완성해라

파이썬[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 지수가 출력되는 프로그램을 완성해라

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를 반환해주는 함수


입력한 나이가 100살이 되는 해의 연도를 구하는 프로그램을 완성해라

🧑🏻‍💻문제 풀이🧑🏻‍💻

import datetime

today = datetime.datetime.today()

myAge = input("나이 입력 : ")

if myAge.isdigit() :
	afterAge = 100 - int(myAge)
	myHundred = today.year + afterAge

else:
	print('잘못 입력했습니다')

💡datetime 모듈로 날짜 계산이 가능






오늘의 주저리

파이썬을 처음 배웠을 당시에는 하나의 프로그램을 짜기도 어려워했었다. 하지만 어느정도 익히다보니 이번 문제들을 풀 때는 문제 유형들이 익숙해진 상태라 그런지 프로그래밍 머리(?)를 쓸 줄 알게 된 것 같았다.

나는 항상 모든 일들을 시작할 때 머릿 속으로 처음부터 끝까지 일련의 과정들을 상상해보고 그대로 일이 해결하고자 했던 사람이었다. 아직까지도 이 성격이 남아있긴 하지만 프로그래밍을 배우면서 많이 고쳐진 것 같다.
하나의 프로그램을 짤 때에 무엇을 어떻게 구현하고자 할 지 상상하고 시작하는 것은 좋
은 습관이었다. 하지만 그 생각했던 사고에 사로잡혀, 쉬운 방법이 있음에도 어려운 방법을 택하기도 했고 내가 생각한 방식이 도저히 프로그램을 완성시킬 수 없을 땐 좌절감이 들기도 했다.(나는 프로그래머의 길이 아닌가..? 와 같은 ㅎㅎ)

나의 장점을 키워보자. 처음부터 끝까지 일련의 과정들을 생각해보는 것은 다시 말하면, 프로그램을 해결할 수 있는 많은 방법들을 생각해 낼 수 있다는 것이다.
그 이후부터 나는 하나의 프로그램을 만들고자 여러 방식들을 생각해내고 메모하기 시작했다. 이 방법이 안되면 그 다음. 이건 너무 복잡하다면 그 다음.

아 그리고 또 생각해보면 내가 생각한 알고리즘들이 프로그램에 적절한 것인지 사람들의 의견을 물어보는 것도 망설이지 않았었다.(그래서 프로그래밍을 혼자서보단 여럿이서 하는 것을 좋아한다. 여러 사람들의 이야기를 들을 수 있기 때문🥰) 그러다보니 미처 내가 생각지도 못한 부분을 깨닫게 되는 날들도, 나의 사고가 제일 적합하다고 인정받는 날들도 생겨났다.

프로그램을 짤 때 주석으로 Step1. Step2. 를 해가며 필요한 과정들을 적어두고 해당 코드를 짜고 실행했을 때 프로그램이 제대로 돌아가는 것을 보는 것은 퍼즐을 하나씩 맞춰나가는 재미와 더불어 말로 표현할 수 없는 희열이 느껴진다. 그래서 프로그래밍은 잠을 포기해서라도 포기할 수 없다.

큼큼... 벌써부터 과거 회상이 너무 짙어져서 주저리가 너무 많아진건 아닌가 걱정이지만ㅋㅋㅋ 이게 솔직한 오늘의 주저리였다!ㅎㅎ

profile
데이터 분석가(가 되고픈) 황성미입니다!
post-custom-banner

0개의 댓글