핵심 파이썬 기초 프로그래밍(5)

일상의 비결·2021년 11월 16일
0
post-thumbnail

본 포스팅은 elice2021 NIPA AI 온라인 교육을 듣고 개인 공부를 위해 정리한 것입니다.

5. 같은 듯 다른 함수와 메서드

1) 함수란?

프로그래밍의 기본 틀

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

함수

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

"라면 끓이기"라는 함수가 있다고 하자. 이 함수 안에는 여러 과정이 있을 것이다.
냄비를 가스레인지에 올리기, 가스레인지에 불을 켜기, 냄비에 물을 550mL 붓기, ...등
이 과정을 모두 묶어 "라면 끓이기"라고 한다.

함수의 구조

컴퓨터는(파이썬 내부에서) 함수에게 어떤 자료형을 건네주게 된다. 함수는 input을 가지고 여러가지 명령을 수행 한 후(반복문, 조건문 등) 다시 컴퓨터에게 값을 알려주게 된다.

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

2) 다양한 함수의 종류

내장함수

파이썬 개발자들이 이미 만들어 둔 함수들
그냥 편리하게 가져다 쓰면 된다😄

  • input() : 자료를 입력하는 함수
  • print() : 자료를 출력하는 함수
  • max() : 시퀀스 자료의 최댓값을 구하는 함수
  • min() : 시퀀스 자료의 최솟값을 구하는 함수
  • sum() : 숫자 원소로 이루어진 시퀀스 자료의 합
  • len() : 시퀀스 자료의 길이를 구하는 함수
a = input() # Hello 입력
print(a) # Hello
print(max(1, 2, 3, 4, 5)) # 5
print(min([1, 2, 3, 4, 5])) # 1
print(sum(1, 2, 3, 4, 5)) # 15
print(len("Triangle")) # 8

사용자 지정 함수

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

함수만들기

  1. define(정의하다) 키워드를 이용해서 함수 정의
  2. 매개변수를 이용해서 함수 내부로 값을 전달
    • 매개변수 : 함수 안에서 사용되는 변수,
      매개변수는 함수 밖에서 자료를 가지고 들어올 수 있다. 이를 ✨인자라고 한다.
  3. 함수 속 명령 작성 - 같은 들여쓰기를 통해 명령 작성
  4. return을 이용해서 함수 외부로 값을 전달

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

❓ 왜 반환이 필요할까?
함수 내부에서 일어난 일은 함수 외부에서 알 수 없다!반환을 통해 외부로 전달!

실습✍ 합/길이 쉽게 구하기

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

var1 = sum(my_list)
var2 = len(my_list)
var3 = var1 / var2

print(var1, var2, var3)
>>> 25 5 5.0

실습✍ 명령이 끝난 후엔 반환!

  1. 함수 plus_print()을 만들어봅시다.
  • 매개변수 : a, b
  • 함수 안에서 a와 b를 더한 값을 출력
  • 반환값 없음
  1. 함수 times_return()을 만들어봅시다.
  • 매개변수 : a, b
  • 반환값 a와 b를 곱한 결과
  1. 함수를 작성한 후, 다음과 같이 출력되도록 코드를 작성해봅시다.
  • plus_print()으로 숫자 3과 4의 합을 출력해봅시다.
  • print()와 times_return()으로 숫자 3과 4의 곱을 출력해봅시다.
def plus_print(a, b):
    c = a + b # c를 생략 후 print(a+b)하는게 더 간단
    print(c) 
    
def times_return(a, b):
    d = a * b # d를 생략 후 return(a*b)하는게 더 간단
    return d

plus_print(3, 4)
print(times_return(3, 4))
>>> 7
12

3) Method(메서드)란?

특정 자료에 대해 특정 기능을 하는 코드 (→ 특정 기능을 하는 코드 = 함수)
리스트 활용시 append(), count(), 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()

실습✍ 친구가 있는 함수? 메서드!

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

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

print(var1)
print(var2)

>>>
dict_keys(['cat', 'dog', 'parrot'])
dict_values(['고양이', '강아지', '앵무새'])

실습✍ 닮은 듯 다른 인자와 매개변수

💎인자와 매개변수 둘은 비슷해 보이지만, 다른 뜻!!!!💎

  • 매개변수(parameter) : 함수를 정의할 때(만들 때) 넘겨받은 값을 관리하는 변수
  • 인자(argument) : 함수를 호출할 때(사용할 때) 함수로 넘겨주는 자료
  1. 함수 solve()를 만들어봅시다. 이 함수의 매개변수는 a와 b입니다.
  2. 이 함수는 a와 b를 곱한 것을 반환합니다.
  3. 이 함수에 숫자 3과 4를 인자로 넣어서 반환되는 값을 변수 var1에 넣어봅시다.
  4. 이 함수에 숫자 3과 리스트 ['Cham']을 인자로 넣어서 반환되는 값을 변수 var2에 넣어봅시다.
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개의 댓글