목차

이전 항목

1. 동일 객체에 대한 다수 명칭

다음 항목

3. 잠시 멈춰서 생각하기

현재 문서

주의사항

해당 문서는 중요 변경 작업 중에 있습니다. 일부 문서에 텍스트가 빠져있거나, 불어로 플레이스홀더(placeholder) 자리차지만 되어 있을 수 있습니다.

2. 리보그 일기

리보그에서 다음 프로그램을 실행한다:

print()

Reeborg writes: 라는 제목을 갖는 팝업 윈도우가 나타난다. 이 윈도우가 리보그 일기장이다. 자유로이 컴퓨터 화면 여기저기로 옮겨본다.

주석

중요: 바로 옆 예제는 함수 move 를 실행하지 않는다; 하지만, 만약 다음과 같이 작성하면:

print( move() )

move 가 실행되고, 파이썬 키워드 None 이 출력된다. 이유는 나중에 설명한다.

이제, 다음 명령어를 실행한다:

print(move)

사용설명서를 저자가 작성하는 시점에, 리보그 일기장에 나온 결과는 다음과 같다.

<function move>

(move 대신에 _move_ 가 나타난 이유는 여기 페이지를 쭉 읽은 후에 추측할 수 있을 것이다.) 동일한 객체(함수)에 대해서 또다른 변수(명칭)를 정의하면 어떨까?

결과는 다음과 같다:

<function move>
<function move>

상기 결과를 통해서 = 은 단순히 명칭을 객체에 부여함이 확실히 나타난다. 이 경우 객체가 출력하도록 요청받을 때 파이썬이 <function move> 을 호출한 것이다. 다른 한편으로, 완전히 새로운 함수를 다음과 같이 정의하면:

# step = move
def step():
    move()

print(step)

결과는 다음과 같다:

<function step>

2.1. 함수는 인자을 수 있다.

컴퓨터 프로그램에서, 단어 인자(argument) 는 함수에 대한 결과를 결정하는 변수를 지칭한다. 예를 들어, 앞서 살펴봤듯이:

print(move)

변수 moveprint() 함수에 대한 인자가 된다. 함수 인자는 괄호 사이에 보이며, 괄호는 함수 호출을 나타낸다.

2.2. 텍스트 작성하기

print() 함수를 사용해서 위에서 했던 것처럼 함수명칭을 적는 것은 프로그램을 작성할 때, 극단적으로 드물다. 훨씬 자주 작업하는 것은 텍스트를 적어 넣는 것이다.

프로그래밍 용어로, 문자(character) 는 임의 문자, 숫자, 출력될 수 있는 기호다. 그리고 연속된 문자 단순히 문자열(string) 은 출력될 수 있는 임의로 연속된 문자다. 예를 들어, 다음과 같이 작성할 수 있다:

print("Hello world!")
print('Hello again.')

문자열 주위를 감싸는 인용부호는 " 처럼 이중 인용부호든지 ' 처럼 단일 인용부호든지 동일해야 된다. 인용부호를 포함하는 문자열이 있다면, 다른 유형의 인용부호로 감싸던가 확장문자(escape character) \ 을 사용한다:

print("Let's go.")
print('Let\'s go.')

+ 기호를 사용해서 문자열을 조합할 수 있다:

print("Goodbye! " + "And thanks for all the fish.")

다음 확장 비트열(escape sequence) \n 을 사용해서 개행(new line)하여 다음 줄에서 시작한다:

print("Thank you. \nTry again")

시도해 보기!

상기 표본 코드 혹은 유사한 코드를 확실히 시도해 본다.

2.3. 리보그는 수학을 알고 있다.

시도해 보기!

다음 프로그램을 시도해 보고 리보그 일기장에 출력결과를 살펴본다.

print( 2 + 3 )  # 숫자를 더한다.
print( 2 * 3 )  # 숫자를 곱한다.
print( 3 - 2 )  # 숫자를 뺀다.
print( 6 / 2 )  # 숫자를 나눈다.
print( 1 + 3 * 2 ) # 곱셈이 덧셈보다 먼저 수행된다.

# 괄호를 사용해서 정상적인 연산 우선순위를 바꾼다.
print( (1 + 3) * 2 )

print( 2 ** 5 ) # 멱승 ... 2**5 = 2 * 2 * 2 * 2* 2

주석

+* 같은 연산자 주위 공백은 파이썬이 무시함에 주목한다; 하지만, 공백을 통해 사람이 코드를 읽을 때, 가독성을 좋게 한다.

상기 예제에서, 결과는 숫자를 나눌 때 부동소수점(floating point) 수가 될 때를 제외하고 항상 정수가 된다: 6 / 2 결과는 3.0 이 된다.

두 숫자를 나눠 정수 결과를 원하면, 두번 나누셈 기호를 사용한다:

print( 6 // 2 )  # 정수 나눗셈

2.4. 변수 사용하기

이미 다른 명칭 (변수)을 동의어로 사용하는 아이디어로 살펴봤다. 수학 연산에 다시 한번 이런 아이디어를 사용하자:

length = 4
width = 6
area = length * width  # 사각형 면적
print(area)            # 결과는 24

시도해 보기!

본인 만의 예제를 만들어서, 실행해 본다.

중요

문자 “2” 는 숫자 2와 같지 않다. 다음을 실행해 본다:

print("2" + 2)

2.5. 복수 인자

print() 같은 일부 함수는 많은 인자를 받을 수 있다: 여러 인자는 코마로 구분된다. 이것을 시연하는데, 다음 프로그램을 실행한다:

length = 4
width = 6
area = length * width
print("직사각형 길이:", length,
      "넓이:", width, "면적:", area)