파이썬(python) 2.7 과 3.6 차이 (2.x, 3.x 버전 기능차이)
머신러닝 강의를 들으로 외부 집합교육을 갔고
환경구축을 하면서 파이썬 설치를 하는데
강사가 하는말
"최신버전이 뭐라도 좋겟죠 ? 파이썬 3.6을 설치하세요"
적어도 강사라면.. 저런말은 하지 않아야 하는것 아닌가 ?
아니면 설명하기 귀찮았던 걸까 ?
덕분에 스스로 찾아볼 기회가 생겨서 고맙게 생각하고있다
다들 머신러닝에 관심을 갖으면서 파이썬을 사용하게될것인데
2.7, 3.6 버전선택과정에서 고민을 잠깐씩 할탠데 아래 내용으로 도움이 되길 바랍니다
파이썬 2.7 과 파이썬 3.6 (3.x 버전)에서 기능적, 문법적 차이를
발견하게된대로 나열해봤습니다
[출력]
2.7 : print "hello"
2.7 : print ("hello")
3.6 : print ("hello")
[입력]
2.7 : name = raw_input("input your name : ")
3.6 : name = input("input your name : ")
[인코딩]
2.7 : utf-8 인코딩을 위해 "# -*- coding: utf-8 -*- " 구문이 있어야함
3.6 : 기본 소스인코딩이 utf-8 이므로 "# -*- coding: utf-8 -*-" 구문 불필요
[try/except]
2.7 :
try :
# todo
except ZeroDivisionError, e :
print e
3.6 :
try :
# todo
except ZeroDivisionError as e :
print (e)
[숫자연산]
2.7 : 3/4 = 0
2.7 : 3/4.0 = 0.75
2.7 : 3.0/4 = 0.75
3.6 : 3/4 = 0.75
3.6 : 3//4 = 0 (소숫점을 버리고 낮은수중에 가장 큰 정수)
[딕셔너리]
딕셔너리에서 key만 발췌하는 dic.keys() 함수 사용시
2.7 : dic이 포함하는 key가 열거된 리스트를 반환
3.6 : dic이 포함하는 key가 열거된 리스트를 소유하는 dict_keys라는 객체를 반환
3.6에서 list를 반환받을 필요가 있을 경우
list(dic.keys()) 로 사용하면 된다
위 방식으로 인해 3.6에서는 메모리낭비를 감소시킨다고함
댓글
댓글 쓰기