# while 반복문
i = 1
while i <= 5: # i가 5보다 작거나 크다면 아래로, 그렇지 않으면 종료
print("나는 잘생겼다!")
i += 1 # i에 1을 더해줌
[결과 값]
나는 잘생겼다!
나는 잘생겼다!
나는 잘생겼다!
나는 잘생겼다!
나는 잘생겼다!
# if, else, elif문
# 예시 : if, else, elif문을 활용하여, 학점을 계산해보자.
def print_grade(midterm_score, final_score): # grade 함수를 정의해봅시다.
total = midterm_score + final_score # total 점수는 midterm_score와 final_score의합으로 구합니다.
if total >= 90: # 만일, total 점수가 90점 보다 크거나 같으면:
print("A") # A 학점
elif total >= 80: # if문 안에 다시 if를 넣을 수도 있지만, elif를 쓰면 간단하게 됩니다.
print("B")
elif total >= 70:
print("C")
elif total >= 60:
print("D")
else: # 마지막으로 이도 저도 아니면,
print("F") # F학점이 되겠군요.
print_grade(35, 50) # 총점 85점이므로, B 학점이 출력됩니다.
# while문과 if문을 함께 활용
# [실습] 100 이하의 자연수 중 2의 배수이지만, 3의 배수는 아닌 것을 모두 출력해봅시다.
i = 2
while i <= 100: # 100 이하의 자연수 중
if i % 2 == 0 and i % 3 != 0: # x의 배수라는 의미는, x로 나눴을 때 나머지가 x인 수를 의미.
print(i)
i += 1
else:
i += 1 # 위 조건에 해당하지 않을 경우 i의 값을 1씩 더해줌
[결과 값]
2
4
...(생략)...
98
100
# 누적된 합을 보관하는 변수 tatal
# 1 부터 9까지 숫자를 모두 더한 값을 출력해봅시다.
i = 1
total = 0 # total 변수에 합산한 값을 저장합니다.
while i < 10: # 9보다 작을 경우,
total += i # total = total + i와 동일, 즉 total 값에 i 값을 더해줍니다.
i += 1 # i에 1씩 더해줍니다.
print(total)
[결과 값] 45
# [실습] 이번엔 1,000보다 작은 자연수 중 2 또는 3의 배수의 합을 출력해봅시다.
i = 1
total = 0 # 합산을 구함
while i < 1000: # 1,000보다 작은 자연수 중
if i % 2 == 0 or i % 3 ==0: # 2의 배수 또는 3의 배수일 경우
total += i # total의 값에 i값을 더함
i += 1
else:
i += 1
print(total)
[결과 값] 333167
# [실습] 정수 N의 약수를 모두 출력하고, 총 몇 개의 약수가 있는지 출력해봅시다.
N = 3
i = 1
count = 0
while i <= N: # i가 N 이하일 경우에만,
if N % i == 0: # N을 i로 나누었을 때, 나머지가 0인 경우라면,
print(i) # i의 값을 출력하고,
count += 1 # count에 1개씩 더해 줌
i += 1
# 참고로 i += 1은 if문 밖에 있어야 함. 그렇지 않으면 "무한 루프"에 빠지게 됨!
print("{}의 약수는 총 {}개입니다.".format(N, count))
# [실습] 2000년 5천만원을 투자했을 때, 2022년에는 얼마를 벌게 됐을까?
# (1번 선택지) 5천만원을 펀드에 투자했을 때, 매년 동일한 이자 5%씩이라고 가정
# (2번 선택지) 2022년 현재 아파트 시세는 10억원이라고 가정
# 펀드와 아파트 중 어느 곳에 투자한 것이 수익률이 높았을까?
# 먼저 상수(바뀌지 않을 값)와 변수(바뀔 값)를 모두 정의
# 01. 상수 정의 (상수 이름은 모두 대문자로!)
# 이자율 (INTEREST_RATE) → 5%로 동일(고정)
# 2022년 아파트 가격 (APARTMENT_PRICE_2022) → 10억원으로 고정
INTEREST_RATE = 0.05
APARTMENT_PRICE_2022 = 1000000000
# 02. 변수
# 2000년부터 시작, 2022년까지 반복을 하기 위한 연도 변수 year 설정
# 매년 펀드의 잔액이 최초 50000000 부터 시작해서 매년 쌓임. 이를 bank_balance 변수에 저장
year = 2000
bank_balance = 50000000
# while 반복문이 수행될 때마다, bank_balance가 5%씩 늘어나도록 하면 됨. 코드로 표현하면?
bank_balance = bank_balance * (1 + INTEREST_RATE)
while year < 2016:
bank_balance = bank_balance * (1 + INTEREST_RATE)
year += 1
# if, else문을 통해 펀드 투자 잔액이 더 큰지, 아파트 가격이 더 큰지에 따라서 출력 결과를 정해 주면 됨
if bank_balance > APARTMENT_PRICE_2022:
print("{}원 차이로 펀드 투자가 맞습니다.".format(int(bank_balance - APARTMENT_PRICE_2022)))
else:
print("{}원 차이로 아파트 투자가 맞습니다.".format(int(APARTMENT_PRICE_2022 - bank_balance)))
[결과 값] 885,399,084원 차이로 아파트 투자가 맞습니다.
# [실습] 피보나치 수열(Fibonacci Sequence) 구하기
# 피보나치 수열의 첫 50개 항을 차례대로 출력하는 프로그램을 작성해 봅시다.
# 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ... 피보나치 수열은 "직전의 수"와 "현재의 수"를 더한 값이 다음의 수가 되는 것이므로, 단순하게 생각했을 때, previous + current 정도로 구할 수 있을 것 같네요.
i = 1
previous = 0
current = 1
while i <= 50:
print(current)
temp = previous
# previous를 임시 보관소 temp에 저장합니다. 이유는 아래에 설명
previous = current
# preivous=current가 되기에, temp가 없었다면 previous + current가 아닌 current + current가 될 뻔 했군요.
current = current + temp
i += 1
# 중첩 while 문
# [실습] 구구단 만들기
i = 1
while i <= 9: # i가 1단 부터 9단까지
j = 1
while j <= 9: # j는 x1~x9 까지
print("{} * {} = {}".format(i, j, i * j))
j += 1 # j가 x9가 되면 빠져나감
i += 1 # i가 9단이 될 때까지 1단씩 더함
# break문
# while문의 조건과 상관 없이, 반복문에서 빠져나오고 싶다면, break문을 사용
I = 100
while True:
if I % 23 == 0: # i가 23의 배수면 반복문을 끝냄
break
I = I + 1
print(I)
'IT > 파이썬' 카테고리의 다른 글
내가 보려고 만든 파이썬 기초함수_01 (0) | 2022.03.13 |
---|
댓글