Media Log

1. 간단한 출력 살펴보기


이번 편에서는 파이썬의 문법을 간단하게 살펴보도록 하고, 첫 시작은 간단하게 Hello, world!를 출력하는 코드를 살펴보도록 하겠습니다. 아래와 같이 IDLE에 입력하고 어떠한 결과가 출력되는지 유심히 살펴보도록 합시다.

>>> print("Hello, world!")
Hello, world!

코드만 보아도 어떠한 기능을 하는 코드인지 알 수 있을것 같죠? print는 말 그대로 출력 기능을 담당하는 함수입니다. 여기서 '함수'란 단어가 혹여나 수학 시간에 등장하는 함수를 일컫는게 아니냐는 의문이 들기도 하죠? 틀린 말도 아닙니다. 파이썬 상의 함수란 단어는 어떠한 입력 값을 넣어주면 그 입력 값에 대한 출력 값을 지닙니다. print 함수에 "Hello, world!"를 넣어주게 되면, 이 입력 값에 대해서 "Hello, world!"라는 출력 값을 내뱉게 되는 것입니다. 함수에 대해서는 나중에 가면 더 자세히 다루도록 하겠지만, 지금은 이렇게 간략하게 나마 알고 있도록 합시다. 우선은 위 코드에서 조금씩 내용을 바꾸어 가면서 적응을 해보도록 합시다. 

>>> print("파이썬에 오신 것을 환영합니다!")
파이썬에 오신 것을 환영합니다!
>>> print("안녕하세요?")
안녕하세요?

위 예제를 봐보시면, 파이썬 인터프리터는 이렇게 우리가 하나의 명령을 주면 그에 따른 결과를 돌려주고 있습니다. 우리가 "안녕하세요?"를 출력하라고 명령하면 파이썬은 그 출력 결과를 바로 아래에 보여줍니다. 그리고 >>>는 프롬프트(Prompt)라는 녀석이며, 이는 '나는 너의 명령을 받을 준비가 되어있어!'를 의미하는 것입니다. 앞의 예제에서 사용된 print 함수를 통해서 다양한 문장들을 출력해보면서 어느정도 감이 잡힌다고 느껴지시면, 이제 그 다음으로 수식 계산이 파이썬 내에서 어떻게 이루어지는지 한번 보도록 하겠습니다.


2. 수식 계산


이번에는 간단한 수식 계산식을 통해 결과를 확인해보도록 합시다. 우선은 기본적인 사칙연산(+, -, *, /)을 사용하여 아무런 식이나 작성하여 결과를 살펴보도록 합시다. 

>>> 512 + 634
1146
>>> 100 * 2013 * 1004
202105200
>>> 2 * 2014 / 333
12.096096096096096
>>> 55 / 3
18.333333333333332

위 수식을 IDLE에 그대로 작성하시면 바로 결과가 아래에 나오는 것을 보실 수 있습니다. 파이썬에서는 사칙연산을 포함한 여러가지 연산자를 지원합니다. 결과의 3~4번째 줄을 보시면 정확히 나누어 떨어지지 않는 경우라면 소수가 출력되는 것을 확인하실 수 있으며, 파이썬에서는 이 소수를 15자리까지 정밀하게 표현합니다. 만약 소숫점 이하의 수는 모두 다 버리고, 정수 부분에 있는 수만 나타내고 싶으시다면 / 연산자가 아닌 // 연산자를 사용하시면 됩니다.


한번, 위에 있는 수식에서 /를 //로 바꾸어 보고 IDLE에 입력하여 결과를 확인해보시기 바랍니다.

>>> 2 * 2014 // 333
12
>>> 55 // 3
18

위에 쓰인 // 연산자는 바로 정수 나누기 연산자이며, 위를 보시면 / 연산 후에 정수 부분만을 결과로 가져옵니다.


그리고, 다른 언어들과 마찬가지로 몫을 구하는 / 연산자가 있으면, 나머지를 구하는 % 연산자가 존재합니다. 만약 a % b와 같은 수식이 있다면, a를 b로 나눈 뒤의 나머지를 가져온다고 할 수 있습니다. % 연산자를 사용하여 나머지를 가져오는 코드를 보도록 하겠습니다.

>>> 1024 % 100
24
>>> 123 % 5
3

위 수식에서 1024를 100으로 나눈 뒤의 나머지인 24, 123을 5로 나눈 뒤의 나머지인 3을 출력하고 있음을 확인하실 수 있습니다.


나머지를 구하는 연산자에 이어, 마지막으로 거듭제곱에 관련된 ** 연산자를 살펴보도록 하겠습니다.

>>> 2 ** 64
18446744073709551616
>>> 2 ** 32
4294967296
>>> 3014 ** 12
561977561797550433783442605323055764279296

위 결과를 보시면 나오는 값이 어마어마한 수더라도 출력된 것을 보실 수 있으며, 예를 들어서 2 ** 64는 독자분들이 생각을 하시듯 2의 64제곱의 결과를 가져옵니다. 3014 ** 12도 3014의 12제곱의 결과를 가져온다고 할 수 있습니다. 간단하죠? 이처럼 정수형 상수의 표현 범위는 제한이 없으며, CPU 레지스터로 표현할 수 있는 크기보다 큰 정수를 다룰때는 연산 속도가 상당히 느려진다고 합니다.


오늘 설명드린 기본적인 연산자들은 독자분들이 한번 보면 충분히 이해할 수 있는 연산자로, 어느 연산자가 어떤 연산자인지 알아두시면 유용하게 쓰일지도 모릅니다. 지금까지 기본적인 출력 방법과, 7가지 연산자에 대해 알아보았습니다. (여기서 연산자의 기능과 예시는 아래 표로 정리해두었습니다.) 강좌는 여기서 마치도록 하고, 다음 강좌에서는 변수에 대해 알아보도록 하겠습니다. 수고하셨습니다.


연산자

예시

기능

+

a + b

a와 b를 서로 더한다

-

a - b

a와 b를 서로 뺀다

*

a * b

a와 b를 서로 곱한다

/

a / b

a를 b로 나눈다

//

a // b

a를 b로 나눈 몫을 가져온다

%

a % b

a를 b로 나눈 나머지를 가져온다

**

a ** b

a의 b 제곱



  / 연산자를 사용했는데 결과값이 실수의 형태가 아닌 정수의 형태로 출력이 됩니다. 어떻게 해야 할까요? 

파이썬 2.7에서 만약 입력값이 정수일 경우에, / 연산자는 정수의 나눗셈을 의미합니다. 즉, 정수의 입력이라고 가정하고 나눗셈이 이루어지는 것과 같습니다. 만약에 실수의 나눗셈을 원한다면 import를 통해 해결할 수 있습니다. 파이썬 3.x 부턴 기본적으로 실수간의 연산으로 이루어지므로 결과값이 예제의 결과값과 동일하게 출력됨을 확인했습니다.

>>> 30 / 7
4
>>> from __future__ import division
>>> 30 / 7
4.2857142857142856

Q1. 출력 문제 (☆☆☆☆)

print 함수를 통해서 "누구나 따라하는 파이썬!"을 출력해보세요.

정답 확인


Q2. 수식 계산 문제 (★★☆☆☆)

세가지 이상의 연산자를 복합적으로 사용하여 결과를 출력해보세요.

예시 확인


Q3. 연산 순서 문제 (★★☆☆)

아래의 연산 결과를 예측해보세요. (연산자 우선순위는 나중에 연산자를 한꺼번에 소개하면서 언급할 예정이고, 아래에서 사용된 사칙연산과 관련된 연산자들은 기본적으로 우리가 알고 있는 사칙연산의 순서를 따른다는 것을 생각하고 결과를 예측해보세요.)

3 * 2**6 + 12
32 + 50 * 10 // 3
6 / 3 + 15 * 4

정답 확인


Q4. 함수 적응 연습 (★★☆☆)

파이썬에서는 다양한 내장 함수를 제공하고 있습니다. 앞서 설명드린 print 함수 역시도 파이썬 내에 내장되어 있는 함수이기에 우리가 직접 그 기능을 구현하지 않아도 사용할 수 있었던 것입니다. 예를 들어서 abs 함수는 넘겨받은 값의 절댓값을 돌려주고, int 함수는 넘겨받은 값을 정수의 형태로 돌려줍니다. 

>>> abs(-6)
6
>>> int(73.5552)
73

위의 내장 함수와 연산자를 함께 이용하여 다양한 결과를 출력해보세요.

예시 확인


저작자 표시 비영리 변경 금지
신고
  1. 이전 댓글 더보기
  2. 야호 at 2014.05.08 11:25 신고 [edit/del]

    좋은 글 감사합니다 ^^

    Reply
  3. anthony at 2014.06.07 23:23 신고 [edit/del]

    감사합니다.

    나쁜머리지만 조금씩 이해가 됩니다. 감사합니다.

    Reply
  4. Angel at 2014.08.08 13:55 신고 [edit/del]

    너무 감사합니다! 파이썬 지식이 급하게 필요했는데,, 덕분에 무료로 먼 곳에서도 공부가 가능하네요!!

    Reply
  5. 느그 at 2014.08.25 16:45 신고 [edit/del]

    저는 2.7.6 버전으로 돌려보고있습니다.. 그런데 55/3 하면 소수점이 안나오고 그냥 정수부분만 출력됩니다. 즉 55/3 이것이 55//3 이것과 같은결과를 얻습니다. 왜 그런건가요?.......? 버전때문인가요?

    Reply
    • 황금붕어 at 2014.12.12 17:26 신고 [edit/del]

      초보자님..

      저도 상위버전에서 글쓴이 님과 같이 하니깐 소수점이 안나오네요.

      검색 결과

      10/3 은 3 으로 소수점이 안나오고

      10.0 /3 으로 해야 소수점이 나오네요..

    • BlogIcon EXYNOA at 2015.11.14 00:41 신고 [edit/del]

      내용에 추가했습니다. 확인해주세요! ^^)/

  6. 데헷 at 2014.08.28 01:06 신고 [edit/del]

    초보자님 저랑 패스워드 같다
    댓글 패스워드ㅋㅋ
    근데, python 2.7.8이 더 업그레이드가 많이 되어있는 것 맞죠?

    Reply
  7. Mavericks at 2014.09.14 13:56 신고 [edit/del]

    자세한 설명 감사드려요^^ 쉽네요 파이썬!

    Reply
  8. 크라카투아 at 2015.01.11 17:36 신고 [edit/del]

    정말 쉽게 가르쳐주시네요 ㅎㅎ
    감사합니다!

    Reply
  9. 파이썬입문 at 2015.01.21 19:00 신고 [edit/del]

    감사합니다.
    프로그래밍 공부 입문으로 c 잠깐 하다가 어려워서
    파이썬으로 다시 입문했습니다.
    강의 끝까지 정독하겠습니다.
    감사합니다^^

    Reply
  10. 파이썬초보 at 2015.02.03 15:23 신고 [edit/del]

    올려주신 예제를 같이 실행하면서 열심히 공부하고 있는데요

    /이 소수점까지 다 나오신다고 했는데 저는 정수부분만 나오게 됩니다.

    //는 정수부분만 나오긴합니다. 무엇이 문제인 건가요??

    Reply
    • BlogIcon EXYNOA at 2015.11.14 00:27 신고 [edit/del]

      만약, 366 / 4를 예로 들면 91.5가 출력되어야 할 부분이 91만 출력이 된다는 것인가요? 구체적인 예시를 제시해주셨으면 좋겠습니다.

    • 배우자 at 2015.12.23 16:43 신고 [edit/del]


      저는 2.7.11버전을 쓰고있는데요
      10/3을 하면 3이 나오고
      10//3을 해도 3이 나오네요

      10.0/3을 하면 3.33333333333335라고 나오긴 해요

      버전의 차이인가요?

    • BlogIcon EXYNOA at 2016.01.02 12:31 신고 [edit/del]

      이 글에서 '/ 연산자를 사용했는데 결과값이 실수의 형태가 아닌 정수의 형태로 출력이 됩니다. 어떻게 해야 할까요?'를 참고하시기 바랍니다. 그런데도 궁금증이 풀리지 않으셨다면, 추가적으로 이해가 되지 않는 부분에 대해서 질문을 해주시기 바랍니다.

      말씀하신대로 버전 차이의 문제입니다.

  11. 레드썬파이썬 at 2015.04.02 01:02 신고 [edit/del]

    안녕하세요! 이제 정주행 시작하려 합니다. ㅎㅎ 좋은 강의 감사합니다.
    질문이 있어 문의드립니다

    Print("Hello, World!")
    Hello, World!
    영어는 이렇게 잘 나오는데
    Print("ㅇㅏㄴㄴㅕㅇ")
    한글은 이렇게 쳐지네요.
    무슨 이유일까요?

    Reply
  12. 강시큐 at 2016.02.19 17:31 신고 [edit/del]

    맥북에서 레드썬파이썬님이 말하신것처럼 오류가 나는대 어떡해해야 하나요..

    Reply
  13. 와우 at 2016.02.27 13:45 신고 [edit/del]

    너무 감사합니다~

    Reply
  14. 와우 at 2016.02.27 13:45 신고 [edit/del]

    너무 감사합니다~

    Reply
  15. int at 2016.03.07 18:42 신고 [edit/del]

    int 함수는 그냥 소수점 다때고 정수로 만드는건가요?

    int(73.99999) 여도 73나오나요?

    Reply
  16. 컴터초짜 at 2016.03.21 22:24 신고 [edit/del]

    주인장님 제가 파이썬을 이번에 대학에서 배우는데 연습문제 모르는게있어서 이렇게 간청드립니다 ㅠㅠ

    문제가

    (동일한 메시지 5번 출력하기) 파이썬에 오신 것을 환영합니다 를 5번 출력하는 프로그램을 작성하시오.

    라는 문제인데 이거 어떻게해야 5번 출력하게 만들수가있을까요 도와주시면 감사하겠습니다 ㅠㅠ

    Reply
    • BlogIcon EXYNOA at 2016.03.22 16:55 신고 [edit/del]

      배우신 범위에 따라서 여러가지 방법을 통해 간단하게 만들 수 있습니다.
      단순 코드 반복에 의한 방법, 반복문에 의한 방법, 문자열 연산에 의한 방법 등 여러가지 방법이 존재하며 그에 대한 내용은 모두 게시글 내에 포함되어 있으니 한번 참고해보시기 바랍니다.

      추신. 덧글이 중복 등록되어서 하나는 삭제시키겠습니다.

  17. 파이썬을 해보자 at 2016.04.16 03:11 신고 [edit/del]

    안녕하세요! 따라해보다가 궁금한점이 있어 문의드립니다.
    저는 IDLE로 실행했는데요, 줄 맨 왼쪽에 숫자가 뜨지 않습니다. 이게 있어야 몇번째 줄이 틀렸다고 알기가 쉽다고 하더라고요! 어떻게 해야 숫자가 보일 수 있나요? 3.4.4 윈도우 64 비트 버전을 설치했습니다.(이전의 설치포스팅을 따랐습니다.)

    Reply
    • BlogIcon EXYNOA at 2016.09.17 02:19 신고 [edit/del]

      따로 파이썬 내에 줄번호를 볼 수 있는 기능이 없습니다. 그러나, IdleX라는 확장 프로그램을 통해서 기존 편집기에 줄번호를 표시하게 할 수는 있습니다.

      http://idlex.sourceforge.net/download.html
      위의 사이트에서 idlex를 다운로드 받아서 idlex.py를 실행시키시면 됩니다.

  18. dfytr at 2016.06.14 03:32 신고 [edit/del]

    >>> print("hello, world")

    안나옵니다

    Reply
  19. dsfㄱ at 2016.06.14 03:33 신고 [edit/del]

    확인해 주실까 모르겠지만
    한번만 봐주세요 위에글

    Reply
  20. ㅇㅇ at 2017.02.09 12:02 신고 [edit/del]

    감사합니다^^잘보고 있어요

    Reply
  21. ㅇㅅㅇ? at 2017.02.10 16:40 신고 [edit/del]

    우오오아아ㅏ아ㅏㅏㅏㅏㅏ!!!

    Reply

submit

티스토리 툴바