> For the complete documentation index, see [llms.txt](https://codebook.horang.it/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://codebook.horang.it/readme/012.md).

# 함수 - 약속

### 코드

{% code title="반환할 데이터 없음 / 매개변수 없음" %}

```
약속, {선언}
    {실행할 코드}
```

{% endcode %}

{% code title="반환할 데이터 있음 / 매개변수 없음" %}

```
약속, {선언}
    {실행할 코드}  # [실행하고 싶을 코드가 있을 때만 작성, 없어도 돼요]
    {반환할 데이터} 반환하기
```

{% endcode %}

{% code title="반환할 데이터 없음 / 매개변수 있음" %}

```
약속, ({매개변수}) {선언}
    {실행할 코드}
```

{% endcode %}

{% code title="반환할 데이터 있음 / 매개변수 있음" %}

```
약속, ({매개변수}) {선언}
    {실행할 코드}  # [실행하고 싶을 코드가 있을 때만 작성, 없어도 돼요]
    {반환할 데이터} 반환하기
```

{% endcode %}

***

### 설명

<mark style="color:purple;">`약속`</mark>은 일정한 코드를 묶어두었다고 생각하면 돼요.

예를 들면 두 숫자를 더하는 코드를 여러 번 사용한다면 함수로 선언하여 더 편하게 여러 번 사용할 수 있어요.

#### 매개변수를 받는 함수

함수를 선언할 때 매개변수를 함께 받고 싶다면, 아래 예시처럼 괄호로 변수명을 묶어서 사용하면 돼요.

{% code title="예시 코드1" %}

```
약속, (첫번째숫자)이랑 (두번째숫자)를 더하고 출력하기
    첫번째숫자 + 두번째숫자 보여주기

10이랑 5를 더하고 출력하기
```

{% endcode %}

{% code title="예시 코드1의 출력" %}

```
15
```

{% endcode %}

{% code title="예시 코드2" %}

```
약속, (문자)랑 (문장)을 합치기
    문자 + 문장 반환하기

"독도"랑 "는 우리땅입니다"을 합치기
```

{% endcode %}

{% code title="예시 코드2의 출력" %}

```
독도는 우리땅입니다
```

{% endcode %}

#### 조사를 활용하는 함수

한글은 영어의 is와 are처럼 상황에 따라 을/를, 은/는 등을 구분해서 사용해야 하는 상황이 있어요. 이럴 경우에는 아래 에시처럼 슬래시(/)를 사용하면 돼요.

{% code title="예시 코드3" %}

```
약속, (첫번째숫자)이랑/랑 (두번째숫자)을/를 더하고 출력하기
    첫번째숫자 + 두번째숫자 보여주기

10이랑 5를 더하고 출력하기
92랑 3을 더하고 출력하기
```

{% endcode %}

{% code title="예시 코드3의 출력" %}

```
15
95
```

{% endcode %}

***

### 주의사항

* 사전에 정의된 함수(보여주기, 입력받기 등)도 선언할 수 있어요. (사전에 정의된 함수도 함수명으로 사용할 수 있어요.)

{% code title="예시 코드4" %}

```
약속, 입력받기
    "안녕 반가워!" 반환하기

입력받기 보여주기
```

{% endcode %}

{% code title="예시 코드4의 출력" %}

```
안녕 반가워!
```

{% endcode %}

* 매개변수를 여러 개 사용할 때는 쉼표나 띄어쓰기로 매개변수를 구분하면 안되고, 매개변수마다 괄호를 써서 괄호를 여러 개 사용해야 해요.

***

### 파이썬 대응 코드

```
def {선언}({매개변수}):
    return {반환할 데이터}
```

***

### 예시

{% code title="예시 코드5" %}

```
약속, (a)와/과 (b)을/를 더하기
    a + b 반환하기

2와 7을 더하기 보여주기  # [함수 결과를 출력하는 것으로, 함수과 무관합니다]
10과 62를 더하기 보여주기  # [함수 결과를 출력하는 것으로, 함수과 무관합니다]
```

{% endcode %}

{% code title="예시 코드5의 출력" %}

```
9
72
```

{% endcode %}
