본문 바로가기
IT/Python

엘리스 AI 트랙 도레미 파이썬 06. 함수와 메서드

by 무녈 2021. 5. 6.

 

자료의 출처는 엘리스 AI 트랙(https://aitrack.elice.io/courses/) '도레미 파이썬'  이며, 학습 후 정리한 내용입니다.

⚡️올바르지 않은 내용이 있을 경우 댓글로 남겨주시면 감사하겠습니다.⚡️


수강 목표

  • 함수가 무엇인지 이해한다.
  • 내장 함수를 사용하고, 함수를 직접 만들 수 있다.
  • 메서드와 함수의 차이를 이해한다.

함수와 메서드

함수

프로그래밍의 기본 틀

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

 

함수

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

 

함수의 구조

len(): 자료를 넣으면 그 자료의 길이를 알려준다

int(): 자료를 넣으면 정수형으로 변환해서 알려준다.

str(): 자료를 넣으면 문자열로 변환해서 알려준다.


함수의 종류

내장 함수

파이썬 개발자들이 이미 만들어 둔 함수

편리하게 가져다 쓰면 된다.

print()
len()
max()
int()

input()과 print()

input(): 자료를 입력하는 함수

print(): 자료를 출력하는 함수

a = input() # Hello 입력
print(a) # Hello

max()와 min()

max(): 시퀀스 자료의 최댓값을 구하는 함수

min(): 시퀀스 자료의 최솟값을 구하는 함수

단, 시퀀스 안의 원소가 모두 숫자형 자료여야 한다.

print(max(1, 2, 3, 4, 5)) # 5
print(min([1, 2, 3, 4, 5])) # 1

sum()과 len()

sum(): 숫자 원소로 이루어진 시퀀스 자료의 합

len(): 시퀀스 자료의 길이를 구하는 함수

print(sum(1, 2, 3, 4, 5)) # 15
print(len("Triangle")) # 8

사용자 지정 함수

사용자가 여러 코드를 묶어서 새로 만든 함수

def plusDobule(a ,b):
    c = a+b
    return 2*c
print(plus(3, 4)) # 14

함수 만들기

define(정의하다) 키워드를 이용해서 함수 정의

def 함수이름(매개변수): #매개변수: 함수 안에서 사용되는 변수
    <수행할 명령>
    ...
    return 반환값

함수의 입력

매개변수를 이용해서 함수 내부로 값을 전달

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

# 인자(argument): 함수를 호출할 때(사용할 때) 함수로 넘겨주는 자료(함수를 사용할 때 매개변수에 실제로 대응하는 값)

def 함수이름(매개변수):   # 함수의 입구 부분이 매개변수
    <수행할 명령>
    ...
    return 반환값

함수 속 명령 작성

같은 들여쓰기를 통해 명령 작성 # 작용(기능)

def 함수이름(매개변수):
____<수행할 명령>
____...
____return 반환값

함수의 반환(출력)

return을 이용해 함수 외부로 값을 전달

def 함수이름(매개변수):   # 함수의 입구 부분이 매개변수
    <수행할 명령>
    ...
    return 반환값

왜 반환이 필요할까?

함수 내부에서 일어난 일은 함수 외부에서 알 수 없다! -> 반환을 통해 외부로 전달

def plus(a, b):
    c = a+b
    return c
    
print(plus(3, 4))
def plus(a, b):
    c = a+b
    return c

print(7)

전역 변수와 지역 변수

함수와 변수

왜 x가 출력 되지 않을까?

함수 안에서 일어난 일은 함수 밖에 영향을 끼치지 않는다!

def my_func(a):
    x = "Hi"
    print(a)
a = 3
my_func(a) # 3
print(x) # error

전역 변수

어디서든지 사용할 수 있는 변수로 함수 밖에서 정의된 변수

x = "Hi!"
def my_func():
    print(x)
my_func() # Hi!
print(x) # Hi

지역 변수

특정 구문(for문, 함수...) 안에서 정의한 변수

변수를 정한 범위에서만 사용이 가능!

def my_func():
    x = "Hi?"
    print(x)
my_func() # Hi?
print(x) # error

Tip! 

print() 함수의 형식

print(data, end="\n", sep=" ")

data에는 출력할 자료를, end에는 data 출력 이후 출력할 문자열을 넣는다. (기본값은 줄바꿈 문자 "\n"이다,)

sep에는 data가 여러개인 경우, 각 data 사이에 출력할 문자열을 넣는다. (기본값은 공백 한 칸 " "이다.)

이때, end와 sep은 "end=", "sep=" 형식으로 인자를 전달해야한다.

예시

print(1, 2, 3, end="")
print(4, 5, 6, sep="")

##실행 결과##
1 2 3456

Method(메서드)

특정 자료에 대해 특정 기능을 하는 코드

my_list = [1, 2, 3]
my_list.append(4)
my_list.count(2)
my_list.pop()

함수 vs 메서드

함수는 특정 기능을 한다. (자료에 독립)

(매개변수를 이용해 자료를 전달해준다)

my_list = [1, 2, 3]
len(my_list)
sum(my_list)
min(my_list)

매서드는 특정 자료와 연관 지어 기능을 한다.(자료에 종속)

(자료 뒤에 .을 찍어 사용한다)

my_list = [1, 2, 3]
my_list.sort()
my_list.pop()
my_list.clear()

* 참고

  • 딕셔너리.keys() : Dictionary형 dict의 모든 Key를 반환
  • 딕셔너리.values() : Dictionary형 dict의 모든 Value를 반환

 

반응형

댓글