함수와 메서드

Namung's Sea·2021년 10월 25일
0

NIPA AI 온라인 교육

목록 보기
5/18
post-thumbnail

함수란?

프로그래밍의 기본 틀

컴퓨터에게 정보를 입력하고,
컴퓨터가 작업하고,
컴퓨터가 작업 결과를 출력.

함수란?

하나를 입력하면 하나를 수행하고 또 하나를 입력하면 하나를 수행하고...
-> 여러번 입력 너무 번거로워!
-> 이를 한번에 묶을 수 없을까?
해서 탄생한 것이 바로 함수.

  • 함수란? 특정 기능을 수행하는 코드(들의 모임)

함수의 구조

컴퓨터(여기서 배우는 언어인 파이썬)에게 어떤 자료를 건네줌 -> 함수가 반복문을 돌리든 조건문을 돌리든 무언가를 시행하고 컴퓨터(파이썬)에게 이를 알려줌

len() : 자료를 넣으면 그 자료의 길이를 알려준다.
int() : 자료를 넣으면 정수형으로 변환해서 알려준다.
str() : 자료를 넣으면 문자열로 변환해서 알려준다.

함수의 종류

내장함수

  • 파이썬 개발자들이 이미 만들어 둔 함수들.
  • 편리하게 가져다 쓰면 된다.
  • print(), len(), max(), int() 등등...
  • input(): 자료를 입력하는 함수
    print(): 자료를 출력하는 함수
a = input() # hello를 입력함.
print(a) # 출력: hello
  • max(): 시퀀스 자료형의 최댓값을 구하는 함수
    min(): 시퀀스 자료형의 최솟값을 구하는 함수
print(max(1, 2, 3, 4, 5)) # 5
print(min([1, 2, 3, 4, 5])) # 1
  • sum(): 숫자 원소로 이루어진 시퀀스 자료의 합
    len(): 시퀀스 자료의 길이를 구하는 함수
print(sum(1, 2, 3, 4, 5)) # 15
print(len("Triangle")) # 8

사용자 지정 함수

  • 사용자가 여러 코드를 묶어서 새로 만든 함수
def plusDouble(a, b):
    c = a+b
    return 2*c
print(plusDouble(3, 4)) # 14
  • 함수 만들기: define(정의하다) 키워드를 이용해서 함수 정의
def 함수이름(매개변수):
___ <수행할 명령>    # ___는 들여쓰기 표시!
___ . . . 
___ return 반환값

  • 함수의 입력: 매개변수를 이용해서 함수 내부로 값을 전달
    매개변수: 함수 안에서 사용되는 변수

  • 함수 속 명령 작성: 같은 들여쓰기를 통해 명령 작성

  • 함수의 반환(출력): return을 사용해서 함수 외부로 값을 전달

왜 반환이 필요할까🤔?
: 함수 내부에서 일어난 일은 함수 외부에서는 알 수 없기 때문.
-> 반환을 통해 외부로 전달!

문제1. 합/길이 쉽게 구하기

  1. 원하는 숫자 5개가 담긴 리스트 my_list을 하나 선언해봅시다.
  2. 변수 var1를 선언하고, my_list의 합을 넣어봅시다.
  3. 변수 var2를 선언하고, my_list의 길이를 넣어봅시다.
  4. 변수 var3을 선언하고, my_list의 평균을 넣어봅시다.

code

my_list = [2, 4, 5, 7, 8]

var1 = sum(my_list)
print(var1)

var2 = len(my_list)
print(var2)

var3 = var1 / var2
print(var3)

실행 결과

26
5
5.2

문제2. 명령이 끝난 후엔 반환!

  1. 함수 plus_print()을 만들어봅시다.
  • 매개변수 : a, b
  • 함수 안에서 a와 b를 더한 값을 출력
  • 반환값 없음.
  1. 함수 times_return()을 만들어봅시다.
  • 매개변수 : a, b
  • 반환값 a와 b를 곱한 결과.
  • 함수를 작성한 후, 다음과 같이 출력되도록 코드를 작성해봅시다.
  1. plus_print()으로 숫자 3과 4의 합을 출력해봅시다.
  2. print()times_return()으로 숫자 3과 4의 곱을 출력해봅시다.

code

def plus_print(a, b):
    print(a+b)

def times_return(a, b):
    c = a*b
    return c
    
plus_print(3, 4)

print(times_return(3,4))

실행 결과

7
12

메서드(Method)란?

  • 특정 자료에 대해 특정 기능을 하는 코드(함수)
my_list = [1, 2, 3]
my_list.append(4)
my_list.count(2)
my_list.pop()

위 코드에서 append(),count(),pop()이 이에 해당됨.

함수 vs 메서드

  • 함수는 특정 기능을 한다.
  • 매개변수를 이용해 자료를 전달해준다.
my_list = [1, 2, 3]
len(my_list) # len()이라는 함수 안에 매개변수인 my_list가 들어가 자료를 전달함.
sum(my_list)
min(my_list)
  • 메서드는 특정 자료와 연관 지어 기능을 한다.
  • 자료 뒤에 .을 찍어 사용한다.
my_list = [1, 2, 3]
my_list.sort()
my_list.pop()
my_list.clear()

문제 1. 친구가 있는 함수? 메서드!

  1. 대응 관계가 3개 있는 Dictionary를 만들고, 이를 변수 my_dict에 넣어봅시다.
  2. 다음 두 메서드를 이용해서, Dictionary의 Key값들을 담은 변수 var1과 Value값들을 담은 변수 var2를 만들어봅시다.
  • 딕셔너리.keys() : Dictionary형 dict의 모든 Key를 반환
  • 딕셔너리.values() : Dictionary형 dict의 모든 Value를 반환

code

my_dict = {"사과":"Apple", "바나나":"Banana","체리":"Cherry"}

var1 = my_dict.keys()
var2 = my_dict.values()

print(var1)
print(var2)

실행결과

dict_keys(['사과', '바나나', '체리'])
dict_values(['Apple', 'Banana', 'Cherry'])

문제 2. 닮은 듯 다른 인자 매개 변수

  1. 함수 solve()를 만들어봅시다. 이 함수의 매개변수는 a와 b입니다.
  2. 이 함수는 a와 b를 곱한 것을 반환합니다.
  3. 이 함수에 숫자 3과 4를 인자로 넣어서 반환되는 값을 변수 var1에 넣어봅시다.
  4. 이 함수에 숫자 3과 리스트 ['Cham']을 인자로 넣어서 반환되는 값을 변수 var2에 넣어봅시다.

사전학습

  • 매개변수(parameter) : 함수를 정의할 때(만들 때) 넘겨받은 값을 관리하는 변수

  • 인자(argument) : 함수를 호출할 때(사용할 때) 함수로 넘겨주는 자료. 실제 함수를 우리가 사용할 때 넣는 값을 의미한다.

def plusDouble(a, b): #이 때 a, b는 매개변수 
    return 2*(a+b)
    
print(plusDouble(3, 4)) # 이 때 3, 4는 인자!
# 함수 호출 시
# a = 3
# b = 4
로 간주

code

def solve(a, b):
    return a*b
    
var1 = solve(3, 4)
var2 = solve(3, ['Cham'])

print(var1)
print(var2)

실행 결과

12
['Cham', 'Cham', 'Cham']

profile
개발자로 시작| 공부한 것을 기록합니다.

0개의 댓글