# 함수 - 약속

### 코드

{% 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 %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://codebook.horang.it/readme/012.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
