(나도코딩의 파이썬 입문) 7장. 함수(p.191 ~ p.201)

2023. 2. 28. 20:57독서

반응형

안녕하세요!

<코딩 자율학습 나도코딩의 파이썬 입문> 멘토를 담당하게 된 이안입니다.

 

오늘은 7장 '함수'를 학습할 거예요!

vscode에서 ch07.py 파일을 생성하고 시작해 주세요.

 

 

오늘 공부할 내용은 다음과 같습니다.

 

🧐 공부할 내용(p.191 ~ p.201)

  • 함수 정의하기
  • 전달값과 반환값

 

1. 함수 정의하기


수학에서도 함수를 배우죠?

 

함수는 입력값과 식이 있을 때 그에 대한 결과인 반환값을 전달하는 것이라고 합니다.

 

파이썬의 내장함수로 len(), print(), input()이 있었죠.

 

def open_account():
    print("새로운 계좌를 개설합니다.")
    
def close_account():
    print("계좌를 삭제합니다.")

 

이렇게 사용자 정의 함수를 구현할 수 있습니다.

 

'함수 정의하기'에서 배울 것은 함수명 짓기입니다.

 

파이썬은 변수명을 짓거나 함수명을 지을 때는 스네이크 케이스를 사용합니다.

 

어린 왕자의 보아뱀을 생각해 봅시다.

 

__^__  이런 느낌 아닌가요?

 

그래서 변수명도 '-'(하이픈)을 이용해서 짓습니다.

 

Java나 c++은 카멜 케이스를 이용합니다.

 

 

2. 전달값과 반환값


 

전달값과 반환값은 좀 더 y = f(x)에 가까운 얘기예요.

 

이때 파이썬에서 x를 매개변수 즉, 전달값이라고 하고, y를 반환값이라고 합니다.

 

그럼 간단한 함수를 한번 만들어보죠.

 

 

두 수를 더해서 반환하는 함수가 있다고 생각해 보자고요.

 

def add(a:int, b: int) -> int:
    return a+b

 

이렇게 매개변수 a, b를 받을 수 있고 반환 값으로 a+b를 줄 수 있죠.

 

 

🥕멘토 TIP

파이썬은 타입을 명시하지 않는 동적 타입 언어입니다.

하지만 제가 위에 작성한 코드처럼 저렇게 타입을 적어서 혼선을 방지하기도 하죠.

 

타입이 없어서 좋은 점도 있지만, 없어서 불편한 점도 많으니까요!

 

혼선 방지를 위해서 저렇게 타입을 명시해 주는 습관을 들이는 것도 좋습니다.

 

 

def open_account():
	print("새로운 계좌를 개설합니다.")
    
open_account()

def deposit(balance: int, money: int) -> int:
    print(f"{money}원을 입금했습니다. 잔액은{balance + money}원입니다.")
    return balance + money

 

이것은 책의 예시입니다.

 

balance와 money를 입력받아 얼마가 입금 됐는지와 잔액을 출력하고 잔액을 반환합니다.

 

 

def open_account():
	print("새로운 계좌를 개설합니다.")
    
open_account()

def deposit(balance: int, money: int) -> int:
    print(f"{money}원을 입금했습니다. 잔액은{balance + money}원입니다.")
    return balance + money
    
balance = 0
balance = deposit(balance, 1000)

 

이렇게 하면 balance에는 얼마가 저장될까요?

 

1000원이 저장됩니다.

 

 

그럼 출금을 해볼까요?

 

def withdraw(balance: int, money: int) -> int:
    if balance >= money:
        print(f"{money}원을 출금했습니다.")
        return balance - money
    else:
        print(f"잔액이 부족합니다. 잔액은 {balance}원입니다.")
        return balance
        
balance = withdraw(balance, 1000)
balance = withdraw(balance, 2000)

 

 

첫 시도는 잔액이 1000원 있었기 때문에 올바르게 동작하죠, 하지만 이후 시도는 실패하게 됩니다.

 

현재는 에러 처리를 저렇게 print를 통해서 했지만, 나중에는 try-except 문을 통해서 자세하게 살펴볼 거예요.

 

 

 

수수료 부가도 역시 간단하게 책의 예제를 따라 입력하면 쉽게 할 수 있어요.

 

 

 

 


이번 시간에는 정말 간단하게 함수에 대해서 알아봤어요.

 

함수는 매개변수, 동작, 반환값 3가지가 있다는 거 기억하시면서 이번 파트 마무리하도록 할게요!

 

✅ 정리

* 함수 정의하기

* 전달값과 반환값

반응형