본문 바로가기
Programming Languages/Python

[Python Examples] def Examples

by Henry Cho 2022. 8. 6.
728x90

def Examples


포스트 난이도: HOO_Junior

 

[Notice] 포스트 난이도에 대한 설명

안녕하세요, HOOAI의 Henry입니다. Bro들의 질문에 대한 내용을 우선적으로 포스팅이 되다 보니 각각의 포스트에 대한 난이도가 달라서 난이도에 대한 부분을 작성하면 좋겠다는 의견을 들었습니다

whoishoo.tistory.com


# def Example 1

 

def에 대한 포스트에 이어서 def를 사용한 example codes들을 살펴보도록 하자. 첫 번째 example은 def를 사용하는 데 있어 def 안의 값을 어떤 식으로 사용할 수 있는지를 알 수 있는 예제이다.

def Intro(pName):
    print("This is a " + pName + "'s introduction.")

Intro("HOOAI")
This is a HOOAI's introduction.

위 예제에서 pName은 프로젝트 이름을 의미하는 변수명이며, Intro라는 def 안의 특정 값으로 지정이 되어 있다. 수학에서 미지수에 해당하는 x와 y처럼 예제 코드에서 pName은 아지 모르는 특정 값을 의미한다. 따라서 class를 사용하듯이 def를 사용하여 pName을 목적에 따라 바꾸어 가며 사용이 가능하다. Intro라는 def를 불러와 괄호 안에 값을 넣게 되면 pName으로 인식하여 def 안에 있는 문장이 출력된다. 위의 경우에는 Intro("HOOAI")를 작성하여 pName은 HOOAI가 되었다.

 

def를 사용하는데 있어 유의할 점은 def를 먼저 작성해주지 않으면 오류가 발생할 수 있다. 한마디로 사용할 def를 선언해주기에 앞서서 def가 사용되면 에러가 발생한다는 것이다. 그럼에도 불구하고 Run을 돌렸을 때 문제없이 출력이 된다.

 

Intro("HOOAI")

def Intro(pName):
    print("This is a " + pName + "'s introduction.")
This is a HOOAI's introduction.

 

왜냐하면 파이썬은 객체지향 언어의 특징을 가지고 컴파일 과정에서 컴퓨터가 알아서 찾아내기 때문이다. 프로그래밍을 코딩을 할때 선언하고 사용하는 것이 기본 틀이다. 그런데 위의 경우에는 사용을 하고 선언이 되었다. 사실 이렇게 실행을 하게 되면 컴퓨터도 이상함을 감지한다. 하지만 절차적 프로그래밍 언어와 달리 컴퓨터가 선언된 def 부분을 먼저 인식하고 def를 사용하게 된다. 한마디로 순서가 다르더라도 선언만 되어 있다면 컴파일 과정에서 알아서 찾아서 실행해준다는 것이다.

 

하지만 이러한 코드 작성법은 왠만해서는 사용하지 않는 것이 좋다. 왜냐하면 코드가 복잡해지고 def가 다양하게 사용될 경우 에러를 만들 소지가 충분히 보이기 때문이다. 프로그래밍에 있어서는 문제가 될 수 있는 경우의 수를 최소화하는 것이 좋다. 하지만 위의 코드를 작성하는 데 있어서 이점은 없고 문제가 될 소지만 있다면 굳이 저렇게 작성할 필요가 없다. 저런 작은 습관 하나하나가 개발자의 코드가 Messy 하게 보이는 원인 중 하나이다. 하지만 꼭 저런 방식을 고집해야 되는 어쩔 수 없는 이유가 존재한다면 꼭 Comments을 덧붙여 주는 게 좋다.


# def Example 2

 

두번째 def example code는 def 안의 여러 개의 값(arguments)들이 있는 경우이다. def는 하나가 아닌 여러 개의 값을 사용할 수 있다. 마치 수학에서 x만 사용하는 것이 아니라 하나의 수식에 x, y, z 등을 동시에 사용한다고 생각하면 된다. 나머지 작성 방법이나 사용 방법은 동일하다.

def Intro(pName, dName):
  print("Project name: " + pName + "\nDeveloper name:" + dName)

Intro("HOOAI", "Henry Cho")
Project name: HOOAI
Developer name:Henry Cho

# def Example 3

 

def에서 **kwargs를 사용하여 나타낼 수도 있다. 아래의 예제는 **kwargs를 사용한 간단한 예제 코드이다.

def Intro(**pName):
  print("The project name is " + pName["project"])

Intro(developer = "Henry Cho", project = "Refsnes")
The project name is Refsnes

 

728x90

'Programming Languages > Python' 카테고리의 다른 글

[Python] 파이썬 웹기반 IDE: Jupyterlab, Colab  (0) 2022.09.03
[Python] Sets란?  (0) 2022.08.08
[Python] defaultdict  (0) 2022.08.04
[Python] def 란?  (0) 2022.08.03
[Python] if 문이란? (if statement)  (0) 2022.07.31

댓글