[문제 1]
다음 height 변수에 별(star)의 층수를 입력하면 각 층마다 별의 개수가 한 개씩 증가하여 출력되고, 마지막 줄에 별의 개수를 출력하시오.
<출력 결과 예시> height: 3 ← 키보드 입력 * ** *** start 개수: 6 |
# 함수 정의
def StarCount(height):
# 층수, 별수 변수 선언
h_cnt = s_cnt = 0
while h_cnt < height:
h_cnt += 1 # 층수 카운터(1,2,3)
print('*'*h_cnt) # 별 출력
s_cnt += h_cnt # 별수 카운터
return s_cnt
[문제 2]
중첩함수를 적용하여 다음 <조건>에 맞게 은행계좌 함수를 완성하시오.
# 함수 정의
def bank_account(bal):
balance = bal # 잔액 초기화(1000)
def getBalance(): # 잔액확인(getter)
return balance
def deposit(money): # 입금하기(setter)
nonlocal balance
balance += money
def withdraw(money): # 출금하기(setter)
nonlocal balance
if balance < money:
print('잔액이 부족합니다.')
else:
balance -= money
return getBalance, deposit, withdraw # 클로저 함수 리턴
[문제 3]
패토리얼(Factorial)을 계산하는 재귀함수를 완성하시오.
# 재귀 함수 정의
def Factorial(n):
if n == 1: 종료 조건
return 1
else:
# 재귀호출
result = n * Factorial(n-1)
# 5(first) -> 4(5-1) -> 3(4-1) -> 2(3-1) | [1(2-1)]
'''
1. stack(5, 4, 3, 2)
2. 곱셈: 1 * [2 * 3 * 4 * 5]
'''
print(n, end = ' ') # 2 3 4 5
return result # 120
'Python > 실전 예제로 배우는 파이썬 프로그래밍' 카테고리의 다른 글
객체지향 기법 (0) | 2023.03.12 |
---|---|
클래스(Class) (0) | 2023.03.11 |
재귀함수(Recursive function) (0) | 2023.03.09 |
중첩함수 (0) | 2023.03.08 |
특수함수 (0) | 2023.03.07 |