파이썬 강좌 – 함수와 메소드의 호출 ~ 편리한 기능 이용하기

  1. 프롤로그
  2. 개발 첫걸음
    1. 컴퓨터 구성요소 – 컴퓨터는 어떤 걸 할 수 있나?
    2. 개발과 관련된 용어
    3. 파이썬의 선택 – 왜 파이썬인가?
    4. 파이썬 설치 – Hello World 출력하기
    5. Visual Studio Code 의 편리한 기능
    6. REPL과 콘솔 창 – 파이썬 동작시키기
  3. 파이썬 기초
    1. 기초 입출력 – 소통하기
    2. 변수와 대입 – 기억하기
    3. 연산자 – 계산하기
    4. 조건문 – 분기를 만들기
    5. 반복문 – 비슷한 작업을 반복하기
    6. 반복문 코딩하기
    7. 변수와 리스트 – 비슷한 변수들을 묶기
    8. for, range – 리스트의 항목을 다루기
    9. 함수와 메소드의 호출 – 편리한 기능 이용하기
    10. 모듈 설치와 사용 – 유용한 기능 끌어다 쓰기
    11. 문자열 – 텍스트 다루기
  4. 파이썬 중급
    1. 함수를 직접 만들기 – 자주 쓰는 기능을 묶기
    2. 딕셔너리, 튜플, 세트 – 변수를 다양한 방법으로 묶기
    3. 클래스와 객체 – 변수를 사람으로 진화시키기
    1. 상속 – 클래스를 확장하기
    2. 정체성과 동질성 – 객체의 성질
    3. 특별 메소드와 연산자 – 파이썬의 내부 작동방식 이해하기
    4. 다양한 함수 인수 – 유연한 함수 만들기
    5. 슬라이싱 – 리스트 간편하게 접근하기
    6. 지능형 리스트(List Comprehension) – 리스트 갖고 놀기
    7. namedtuple - 데이터 묶음 손쉽게 만들기
    8. 조건 표현식 (Conditional Expression) - 간단한 분기 나타내기
    9. 코드 스타일 - 코드의 일관성 유지하기
    10. 명령문, 표현식 – 문법을 이루는 것들
    11. 본격적인 검색 해보기
  5. 파이썬 고급
    1. 일급 함수 다루기
    2. NotImplementedError와 NotImplemented
    3. 어노테이션 – 수월하게 프로그래밍하기
    1. 내장 함수 톺아보기
    2. 예외와 에러 – 예상치 못한 상황에 대응하기 (v0.1)
    3. 변수의 범위 – 이름 검색의 범위
  6. 파이썬 심화
    1. 시퀀스와 반복자 – 반복과 순회를 자유자재로 다루기
    2. 데코레이터 – 함수의 기능을 강화하기
    3. 프로퍼티
    4. 제너레이터
    5. async와 await
    6. 객체로서의 클래스 – 클래스를 동적으로 정의하기
  7. 파이썬 프로젝트 실습
    1. 원카드 게임 만들기 (1)
    2. 원카드 게임 만들기 (2)
    3. 원카드 게임 만들기 (3) (작성중)
    4. 턴제 자동 전투 게임 만들기 (작성중)
  8. 실전 (파이썬 외적인 것들)
    1. 정규표현식 – 문자열을 검색하고 치환하기 (작성중)
    2. 유니코드 – 컴퓨터에서 문자를 표기하는 방법
    3. html, css, 인터넷 – 자동화 첫 걸음 내딛기
    4. 네트워크 – 인터넷으로 통신하는 방법
    5. 문서 – 문맥을 읽어보기

함수(function)

우리는 지금까지 printinput을 잘 써왔습니다. 이것들을 함수(function)라고 합니다. 여기서 말하는 함수는 수학에서 이야기하는 y=f(x) 와는 느낌이 조금 다릅니다.

함수를 이용하여 우리는 편리한 기능을 손쉽게 사용할 수 있습니다. 우리는 함수를 사용한다고 이제껏 이야기 하였습니다. 하지만 함수를 사용하는 동작은 더 정확히 이야기를 하면 함수를 호출 한다는 것입니다.

함수를 호출하는 방법은 이전에 했던 대로 함수 이름을 먼저 적고 소괄호 안에 인수 를 넣으면 됩니다. print("텍스트") 이렇게요! 인수란 함수에게 넘어가는 값들을 이야기합니다. 인수는 없을 수도 있고, 하나일 수도 있고, 여러개일 수도 있습니다. 단, 함수마다 받는 인수는 어느 정도 정해져있어서, 쓰라는 대로 알맞게 인수를 넣어야 함수가 의도대로 작동합니다.

호출과 인수에 관한 내용은 우리가 직접 함수를 만들어보는 시간을 가지면서 더 자세히 알아보도록 합니다. 일단은 넘어갑시다.


함수와 메소드의 차이점

함수(function)와 메소드(method)는 거의 똑같지만 딱 한 가지 차이점이 있습니다. 그것은 바로 메소드는 어딘가에 속해있다는 점입니다. 우리가 리스트 내 수들의 합계를 구할 때 sum(list)와 같이 sum을 호출하고 list를 인수로 두었습니다. 이 때 sum은 함수입니다.

하지만 리스트의 항목을 추가하려고 할 때 우리는 list.append(10)과 같이 작성했습니다. append 왼쪽의 .이 보이시나요? 이 .list에 속해있다는 것을 뜻합니다. 우리는 append(list)와 같이 사용할 수 없습니다.


내장 함수

내장 함수란 파이썬 어디에서나 사용할 수 있는 함수를 뜻합니다. 우리는 printsum 같은 함수를 아무런 준비 작업 없이 바로 작성했습니다. 그렇다면 준비 작업이 필요한 함수도 있다는 뜻일까요? 맞습니다. 어떤 함수들은 모듈(module)이라는 것을 불러와서 사용할 수도 있고, 우리가 직접 만들어서 사용할 수도 있습니다. 둘 다 이번 시간에 다루는 내용은 아니므로 이후로 미뤄둡시다.

int, list, str 등은 정확히 이야기하면 내장 함수가 아니라 내장 클래스이지만, 일단은 함수와 똑같이 작동할 수 있으므로 크게 신경쓰지 않아도 됩니다.


내장 함수는 키워드(문법)가 아닙니다.

내장 함수나 int 등의 기본 형의 이름은 키워드가 아닙니다. 키워드가 아니라는 것은 무슨 뜻일까요? 이는 우리가 일반적으로 사용하는 변수처럼 작동한다는 뜻입니다. if와 같은 키워드는 우리가 if = 30 등으로 변수처럼 이용하려고 해도 불가능합니다. 하지만 print는 가능합니다. 다음 예제를 봅시다.

print = 30
a = print + 3
print(a) # 에러
Traceback (most recent call last):
  File "c:/Users/tooth/Desktop/test.py", line 3, in <module>
    print(a)
TypeError: 'int' object is not callable

첫째 줄에서 print = 30이라고 대입문을 사용했습니다. 이렇게 된다면 이 print는 더이상 내장 함수 print가 아니라 정수 30을 가지고 있는 일반 변수가 되어버립니다. 그래서 마지막에 본래 의도대로 사용하려고 print(a)를 작성했으나 에러가 떴습니다.

내장 함수에 대해 조금만 익숙해져도 이름을 겹쳐서 사용할 일은 거의 없을 것입니다. 모든 내장 함수와 정확한 사용법은 다음 링크에서 확인하실 수 있습니다. 초급 단계에서 더 자주 쓰는 함수와 호출법은 이 글 아래쪽에서 간단히 소개합니다. https://docs.python.org/ko/3/library/functions.html


반환 값

함수의 결과로 어떤 값이 나온다는 것을 더 정확히 이야기해서 이 함수는 값을 반환한다. 라고 합니다. print 함수는 반환값이 없고, input, sum과 같은 함수는 반환값이 있지요. 아래 예제를 해봅시다.

a = print("테스트1")
b = input("테스트2")
c = sum([1,3,2,4,6])
print(a)
print(b)
print(c)

binput이라서 "테스트입니다~"라고 적어보았습니다. 결과는 다음과 같습니다.

테스트1
테스트2테스트입니다~
None
테스트입니다~
16

반환 값은 있을 수도, 없을 수도 있습니다. 변수 aprint의 반환 값을 받도록 되어있으나, print 함수는 반환 값이 없기 때문에 a의 출력이 None임을 확인하실 수 있습니다. None은 아무 것도 아니라는 뜻입니다.


내장 함수 목록

파이썬의 초보 단계에서 자주 접하는 내장 함수는 리스트를 다룰 때 많이 사용했습니다. 리스트를 다루는 내장 함수는 리스트와 for 강좌를 참조해주세요. 리스트를 다루지 않는 내장 함수 몇 개를 소개합니다.

input

  • 사용법 : input(message)
  • 설명 : 사용자의 입력을 받습니다.

print

  • 사용법 : print(message1, message2, ...)
  • 설명 : 문자열을 모니터에 차례로 출력합니다.

abs

  • 사용법 : abs(number)
  • 설명 : 숫자의 절댓값을 구합니다.

divmod

  • 사용법 : r1, r2 = abs(a, b)
  • 설명 : ab로 나눈 몫 r1과 나머지 r2를 구합니다.

pow

  • 사용법 : pow(a, b)
  • 설명 : ab제곱(ab승)을 구합니다. **과 동일합니다.

round

  • 사용법 : round(a)또는 round(a, b)
  • 설명 : a를 반올림합니다. a만 넣으면 정수가 되도록 반올림됩니다. b를 넣으면 소수점 b개까지 보이도록, b가 음수라면 b만큼 0이 보입니다.

형 변환과 관련된 것

  • 사용법 : int(a)
  • 설명 : a를 해당 타입으로 변환합니다. 변환에 실패하면 에러가 발생합니다.
  • 종류 : int, float, str, bool, list 등등

기타

사용 예제

po = int(input("숫자를 입력하세요 >> "))
print(po + 3)
print("abs:", abs(-5))
r1, r2 = divmod(18, 7)
print("divmod:", r1, r2)
print("pow:", pow(2, 5))
print("round a:", round(1425.35))
print("round a,b(pos):", round(1425.35, 1))
print("round a,b(neg):", round(1425.35, -2))
print(int("1234") + 123)
print(float("13.24"))
print(str(3.14) + "입니다")
print(bool(23))
print(list("I like you"))
숫자를 입력하세요 >> 12
15
abs: 5
divmod: 2 4
pow: 32
round a: 1425
round a,b(pos): 1425.3
round a,b(neg): 1400.0
1357
13.24
3.14입니다
True
['I', ' ', 'l', 'i', 'k', 'e', ' ', 'y', 'o', 'u']

문자열(str)의 메소드

문자열(str)과 관련된 메소드도 참 편리한 것이 많은데요, 이는 다음 시간에 알아보도록 하겠습니다.

연습 문제

추가 예정

프로그래밍 문제

추가 예정

  1. 프롤로그
  2. 개발 첫걸음
    1. 컴퓨터 구성요소 – 컴퓨터는 어떤 걸 할 수 있나?
    2. 개발과 관련된 용어
    3. 파이썬의 선택 – 왜 파이썬인가?
    4. 파이썬 설치 – Hello World 출력하기
    5. Visual Studio Code 의 편리한 기능
    6. REPL과 콘솔 창 – 파이썬 동작시키기
  3. 파이썬 기초
    1. 기초 입출력 – 소통하기
    2. 변수와 대입 – 기억하기
    3. 연산자 – 계산하기
    4. 조건문 – 분기를 만들기
    5. 반복문 – 비슷한 작업을 반복하기
    6. 반복문 코딩하기
    7. 변수와 리스트 – 비슷한 변수들을 묶기
    8. for, range – 리스트의 항목을 다루기
    9. 함수와 메소드의 호출 – 편리한 기능 이용하기
    10. 모듈 설치와 사용 – 유용한 기능 끌어다 쓰기
    11. 문자열 – 텍스트 다루기
  4. 파이썬 중급
    1. 함수를 직접 만들기 – 자주 쓰는 기능을 묶기
    2. 딕셔너리, 튜플, 세트 – 변수를 다양한 방법으로 묶기
    3. 클래스와 객체 – 변수를 사람으로 진화시키기
    1. 상속 – 클래스를 확장하기
    2. 정체성과 동질성 – 객체의 성질
    3. 특별 메소드와 연산자 – 파이썬의 내부 작동방식 이해하기
    4. 다양한 함수 인수 – 유연한 함수 만들기
    5. 슬라이싱 – 리스트 간편하게 접근하기
    6. 지능형 리스트(List Comprehension) – 리스트 갖고 놀기
    7. namedtuple - 데이터 묶음 손쉽게 만들기
    8. 조건 표현식 (Conditional Expression) - 간단한 분기 나타내기
    9. 코드 스타일 - 코드의 일관성 유지하기
    10. 명령문, 표현식 – 문법을 이루는 것들
    11. 본격적인 검색 해보기
  5. 파이썬 고급
    1. 일급 함수 다루기
    2. NotImplementedError와 NotImplemented
    3. 어노테이션 – 수월하게 프로그래밍하기
    1. 내장 함수 톺아보기
    2. 예외와 에러 – 예상치 못한 상황에 대응하기 (v0.1)
    3. 변수의 범위 – 이름 검색의 범위
  6. 파이썬 심화
    1. 시퀀스와 반복자 – 반복과 순회를 자유자재로 다루기
    2. 데코레이터 – 함수의 기능을 강화하기
    3. 프로퍼티
    4. 제너레이터
    5. async와 await
    6. 객체로서의 클래스 – 클래스를 동적으로 정의하기
  7. 파이썬 프로젝트 실습
    1. 원카드 게임 만들기 (1)
    2. 원카드 게임 만들기 (2)
    3. 원카드 게임 만들기 (3) (작성중)
    4. 턴제 자동 전투 게임 만들기 (작성중)
  8. 실전 (파이썬 외적인 것들)
    1. 정규표현식 – 문자열을 검색하고 치환하기 (작성중)
    2. 유니코드 – 컴퓨터에서 문자를 표기하는 방법
    3. html, css, 인터넷 – 자동화 첫 걸음 내딛기
    4. 네트워크 – 인터넷으로 통신하는 방법
    5. 문서 – 문맥을 읽어보기

One thought on “파이썬 강좌 – 함수와 메소드의 호출 ~ 편리한 기능 이용하기

  1. 좋은 글 올려셔서 감사합니다. 설명을 너무 잘해주셔서 이해가 쏙쏙돼요
    그래서 아직 작성되지 않은 내용까지 너무 궁금합니다..

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다

Scroll to top