프로그램 블록 만들기 연습문제

2023. 3. 10. 11:28Python/실전 예제로 배우는 파이썬 프로그래밍

[문제 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