본문 바로가기
프로그래밍 언어/Python

python 언어 특징

by 까망 하르방 2021. 2. 20.
반응형
프로그래밍 언어는 C / C++ / Python / Ruby / Go 등 다양한 언어가 존재하며,
웹 / 앱 / 펌웨어 / AI 등 여러분야에서 많이 사용되는 언어가 있습니다.
해당 게시글은 여러 언어들이 가지고 있는 공통적인 특징일 수도 있고,
Python만의 비교적(?) 좋은 특징에 대해 작성한 글입니다.

- Runtime에서 타입 확인을 하고 자동 메모리 관리 (동적 타이핑)

- 메모리가 허용되는 범위에서 커다란 정수를 무한 사용 가능

파이썬은 들여쓰기 규정이 엄격하다. (TAB 보다는 공백 4개를 추천함)

  그렇다고 아무데서나 함부로 들여쓰기 하면 안됩니다. 

선택한 블록 들여쓰기 → CTRL + ]
선택한 블록 들여 내기 → CTRL + [

- 인터프리터 언어로 매번 명령 줄을 해석하고 실행

  최적화하기 어려울 수 있다.

컴파일러 언어 : 코드를 모두 모아놓고 컴파일러를 통해 한꺼번에 실행
인터프리터 언어 : 한줄마다 인터프리터를 통해 명령 처리

- 기본적으로 Built-in 함수를 사용하는 것이 빠르다.

  즉, 직접 동작을 구현하기 보다 이미 만들어진 함수, 모듈 등을 잘 활용하는 것이 중요

▶ for 문을 이용한 천만(107) 까지 합 구하기

import datetime

total = 0
start = datetime.datetime.now()

for i in range(10000000):
    total += i

end = datetime.datetime.now()
print("time =", (end - start), total)

▶ Built-in 함수 활용

import datetime

start = datetime.datetime.now()

total = sum(range(10000000))

end = datetime.datetime.now()
print("time =", (end - start), total)

 

성능 vs 가독성

특정 기능 구현에 있어서, 가독성을 선택해야할까? 아니면 성능을 선택해야할까?

주어진 환경에 따라 선택은 다를 수 있지만 아래와 같이 성능 차이가 발생함을 알고 있어야 한다.

▶ for 문을 이용한 반복문 구현

import datetime

start = datetime.datetime.now()

for i in range(1000):
    print(i, end=' ')

end = datetime.datetime.now()
print()
print("time =", (end - start)) # 0.112

▶ Built 함수를 활용한 처리

import datetime

start = datetime.datetime.now()

print(' '.join(str(i) for i in range(1000)))

end = datetime.datetime.now()
print("time =", (end - start)) # 0.003

 

어느정도 가독성이 떨어져도 반복보다는 한번에 호출하는 것이 좋다.

ex) print 여러번 호출하는 것보다 print를 한번 호출하는 것이 좋다. 

 

※ python에서 아래와 같이 입력하면 파이썬 철학을 엿볼 수 있다.

import this

반응형

댓글