[01]Python2와 3의 차이점

Why Python?

1

<출처 : RedMonk 2016년 1분기 프로그래밍언어 랭킹>

파이썬은 최근 프로그래밍언어 순위에서 4위를 차지했다.
파이썬의 인기에는 여러 이유가 있지만, 가장 큰 이유는 바로 배우기 쉽고, 활용하기 쉬운 언어라는 점이다.

if 5 in [1,5,10,15]: print("5가 존재합니다.")

위 코드의 의미는  ‘ 만약 1,5,10,15 중에서 5가 있다면  “5가 존재합니다.”를 출력하라’   이다.
코드를 보면 프로그래밍을 배우지 않은 사람도 쉽게 이해할 수 있는 수준임을 알 수 있다.
이러한 간결성말고도 개발기간단축, 유지보수가 쉽다는 점에서 점점 더 많은 기업들이 사용하는 추세이다.

 

Python2와 Python3의 차이점

  • Print문 괄호

#Python2

print('PYthon')
#Python
print 'Python'
#Python

파이썬2의 경우 두 명령문 모두 정상적으로 출력이 된다.

하지만, 파이썬 3의 경우는

#Python3

print('Python')
#Python
print 'Python'
#error! invalid syntax

print뒤에 괄호를 붙여야만 정상적으로 출력됨을 알 수 있다.

  • 나눗셈 결과(int와 float구분)

#Python2

print(5/2)
#2

파이썬2의 경우 5/2의 결과로 2가 출력되고

#Python3

print(5/2)
#2.5

파이썬 3의 결과는 1.5인 것을 알 수 있다.
파이썬 2와 3의 결과가 다른 이유는 파이썬2는 int/int의 결과가 항상 int이기 때문이다.

그러므로 파이썬2에서 소수형태로 결과가 나오게 하려면

#Python2

print(5/2.0)
#2.5

5나 2의 값을 float(실수형) 형태로 지정해주어야 한다.

  • str과 unicode 통일

#Python2

print(type('python'))
print(type(u'python'))
#<type 'str'>
#<type 'unicode'>

#Python3

print(type('python'))
print(type(u'python'))
#<type 'str'>
#<type 'str'>

파이썬3는 모든 문자열을 str로 인식한다.

무엇을 사용해야할까?

학업에 있고 파이썬을 처음 접한다면, 파이썬3로 공부하는 것이 편할 것이다. 대부분의 파이썬 라이브러리들이 3를 완전히 지원하고 있고 많은 사람들이 파이썬2와 파이썬3가 호환될 수 있는 코드로 작성을 하기 때문이다.
또한, 큰 프로젝트에서 프로그래밍을 하기에 보다 구조적이고 효율적이다.

하지만, 좀 더 실무적으로 깊숙이 들어간다면 아직 파이썬2만 지원하는 패키지도 있고, 유지보수해야하는 구축된 파이썬코드들 대부분이 파이썬2로 만들어졌기 떄문에, 아직은 파이썬2를 사용하는 일이 대다수라고 할 수 있다.

그러므로 이러한 점을 참고하여 파이썬2나 3를 선택하여 사용하면 될 것이다.

댓글 남기기