4) 파이썬은 버전이 2개 ?

 

파이썬에는 2.7버전과 3.xx버전이 공존한다.

 

기존 방식을 원하는 유저들이 2.7버전의 유지를 원해서 파이썬 홈페이지에서도 아직까지 2.7버전에 대한 서비스를 하고 있다.

 

크게 다른 특징은 다음과 같다.

print

파이썬 3 버전은 출력할 문자열에 괄호를 필요로 한다.

파이썬 3 버전의 예

>>> print ("Hello Python")

파이썬 2.7 버전의 예

>>> print "Hello Python"

파이썬 2.7 버전인 경우 파이썬 3 버전처럼 괄호를 사용해도 동일하게 동작한다. (단, 2.7 버전 이하의 파이썬 구버전에서는 오류가 발생할 수 있다.)

줄바꿈 방지

print 문 실행 시 항상 문자열 마지막에 \n 문자가 출력되어 줄바꿈이 일어나게 된다. 이렇게 마지막 문자인 \n을 생략할 수 있는 방법이 있는데 이것또한 파이썬 3 버전과 파이썬 2.7 버전이 서로 다르다.

파이썬 3 버전의 예

>>> print ("No new line", end=" ");print ("ok?")

파이썬 3 버전의 경우 줄바꿈 문자를 제거하기 위해서 위와 같이 끝 문자를 지정할 수 있는 end 파라미터를 설정하면 된다. 지정하지 않으면 디폴트로 \n문자가 세팅된다.

파이썬 2.7 버전의 예

>>> print "No new line",;print "ok?"

파이썬 2.7 버전의 경우 줄바꿈 문자를 제거하기 위해서 문자열의 끝에 콤마(,)를 덧불이면 된다.

자동 형 변환

파이썬 3의 경우 숫자연산 시 자동으로 형 변환이 된다.

파이썬 3 버전의 예

>>> 3 / 4

0.75

파이썬 2.7 버전의 예

>>> 3 / 4

0

>>> 3 / 4.0

0.75

input

파이썬 3 버전의 input 내장함수와 파이썬 2.7버전의 raw_input 내장함수는 동일하다. 기존 파이썬 2.7의 input 내장함수는 파이썬 3부터는 더이상 지원되지 않는다.

파이썬 3 버전의 예

>>> name = input("이름을 입력하세요:")

파이썬 2.7 버전의 예

>>> name = raw_input("이름을 입력하세요:")

소스코드 인코딩

파이썬 3 버전부터는 utf-8이 기본 소스코드 인코딩이므로 다음과 같은 문자열을 소스코드 첫줄에서 생략할 수 있다.

# -*- coding: utf-8 -*-

하지만 utf-8 이 아닌 다른 형태의 소스코드 인코딩을 사용해야 할 경우에는 해당 인코딩을 명시해야 한다. 하지만 파이썬 2.7 버전은 무조건 위와 같은 문자열을 소스코드 첫 줄에 명시해야만 인코딩 오류가 발생하지 않는다.

이외에도 줄바꿈, 인코딩 등도 다른 부분이 있다.