소개
우리 대부분은 Python을 프로그래밍 언어로 잘 알고 있습니다. Python 3의 훌륭한 점 중 하나는 무수히 많은 내장 함수를 제공한다는 것입니다. Python 3를 사용하여 다양한 유형의 코드를 작성할 때 이러한 함수에 액세스할 수 있습니다. 시작하기 전에, 다음 튜토리얼을 살펴보세요: Ubuntu 16.04에서 Python 3 설치 및 로컬 프로그래밍 환경 설정. 이제 Python의 유용한 함수 몇 가지를 살펴보겠습니다:
print(): 이 함수는 표현식을 출력할 수 있게 해줍니다.abs(): 이 함수를 사용하면 모든 숫자의 절대값을 얻을 수 있습니다.int(): 이 함수는 주어진 데이터 타입을 정수로 변환할 수 있게 해줍니다.len(): 이 함수는 시퀀스나 컬렉션의 길이를 보여줍니다.
내장 함수만으로 충분할까요?
불행히도 이러한 내장 함수만으로는 충분하지 않습니다. Python 3로 프로그래밍할 때 더 많은 기능이 필요할 수 있습니다. 프로그램의 기본 기능에만 국한되고 싶지는 않을 것입니다. 바로 이 부분에서 모듈이 등장합니다.
모듈이란 무엇인가요?
모듈을 사용하면 더 정교한 프로그램을 빌드할 수 있습니다. 모듈은 선택의 폭을 넓혀주고 작업할 수 있는 더 많은 여지를 제공합니다. 모듈은 일반적으로 Python .py 파일로 구성됩니다. 이러한 각 파일에는 Python 코드 조각이 포함되어 있습니다. 모든 Python 파일을 모듈로 참조할 수 있습니다. 이러한 모듈을 사용하면 온갖 종류의 작업을 수행할 수 있습니다. 예를 들어 함수, 클래스뿐만 아니라 변수도 정의할 수 있습니다. 다른 Python .py 파일이나 명령줄 인터프리터를 통해 이를 참조할 수 있습니다.
이름이 hello.py인 Python 파일이 있다고 가정해 보겠습니다. 이 파일의 모듈 이름은 hello입니다. 이 모듈을 다른 Python 파일로 쉽게 가져올 수 있습니다. Python 명령줄 인터프리터에서도 사용할 수 있습니다. 다양한 파일에서 모듈을 가져오는 방법은 import 문을 사용하는 것입니다. 모듈을 가져올 때 기본적으로 모듈 내부의 코드를 실행하게 됩니다. 모듈의 정의를 현재 파일에서 사용할 수 있도록 만드는 것입니다.
이 종합 가이드에서는 Python 3에서 모듈을 확인하고 설치하는 방법을 다룹니다. 또한 모듈을 가져오고 별칭을 지정하는 방법에 대해서도 설명합니다..
모듈을 확인하는 방법은 무엇인가요?
앞서 언급했듯이 Python 3에는 몇 가지 내장 모듈이 있습니다. 이는 Python 표준 라이브러리에서 찾을 수 있습니다. 이 라이브러리에는 몇 가지 기본적인 시스템 기능과 솔루션을 수행하는 여러 표준 모듈이 포함되어 있습니다. 이는 다음을 수행할 때 제공되는 기본 기능입니다: Python 설치.
이러한 모듈을 사용할 준비가 되었는지 확인하려면 명령을 내려야 합니다. 로컬 Python 3 프로그래밍 환경 또는 서버 기반 프로그래밍 환경에 진입해야 합니다. 그런 다음 명령줄에서 Python 인터프리터를 시작해야 합니다. 다음과 같이 보일 것입니다:
|
1 |
<span style="font-family: georgia, palatino, serif; font-size: 12pt;">cloudsigma@ubuntu:~$ python</span> |
이제 다음을 실행할 수 있습니다: import 문. 이를 통해 필요할 때 모듈을 호출할 수 있는지 확인할 수 있습니다. 예를 들어, 다음과 같이 math 모듈로 명령을 실행한다고 가정해 보겠습니다:
|
1 |
<span style="font-family: georgia, palatino, serif; font-size: 12pt;">import math</span> |
이 math 모듈은 Python의 내장 모듈입니다. 즉, 인터프리터가 아무런 피드백 없이 작업을 완료합니다. 프롬프트로 다시 돌아가게 됩니다. 다른 조치 없이 바로 모듈을 사용할 수 있습니다.
모듈을 설치하는 방법은 무엇인가요?
반면에 설치되지 않은 모듈을 실행하고 싶다고 가정해 보겠습니다. 이 예제에서는 2D 플로팅 라이브러리인 matplotlib을 살펴보겠습니다. 이러한 모듈로 import 문을 실행하는 방법은 다음과 같습니다:
|
1 |
<span style="font-family: georgia, palatino, serif; font-size: 12pt;">import matplotlib</span> |
모듈을 설치하지 않았다면 다음과 같은 오류가 발생합니다:
|
1 2 3 |
<span style="font-family: georgia, palatino, serif; font-size: 12pt;">Output ImportError: No module named 'matplotlib'</span> |
작동하게 하려면 먼저 Python 인터프리터를 비활성화해야 합니다. 다음과 같이 할 수 있습니다: CTRL + D. 다음으로, matplotlib을(를) 설치해야 합니다. 사용 도구는 pip:
|
1 |
<span style="font-family: georgia, palatino, serif; font-size: 12pt;">cloudsigma@ubuntu:~$ pip install matplotlib</span> |
이제 matplotlib을(를) 인터프리터에서 import matplotlib 명령어를 사용하여 성공적으로 임포트할 수 있습니다. 이번에는 오류가 반환되지 않습니다.
모듈을 임포트하는 방법
모듈을 임포트하는 방법을 알아보겠습니다. 모듈의 기능을 활용하려면 import 문을 사용하여 모듈을 임포트해야 합니다. 문은 import 키워드와 모듈 이름의 쌍으로 구성됩니다. 모듈 이름은 일반적으로 Python 파일의 코드 맨 위에 위치합니다.
예를 들어, my_rand_int.py라는 Python 파일을 보고 있다면, 난수를 생성하기 위해 random 모듈을 임포트하게 됩니다:
|
1 |
<span style="font-family: georgia, palatino, serif; font-size: 12pt;">import random</span> |
점 표기법(dot notation)으로 함수를 참조해야 합니다. 다음과 같은 형태가 됩니다: [module].[function]. 이는 기본적으로 현재 파일에서 모듈을 별도의 네임스페이스로 사용할 수 있음을 의미합니다.
모듈에 대해 계속해서 몇 가지 함수를 살펴보겠습니다:
random.randint(): 이 함수는 임의의 정수를 반환합니다.random.randrange(): 이 함수는 주어진 범위에서 임의의 요소를 반환합니다.for루프를 만드는 방법을 알아보겠습니다. 우리는random모듈의 함수 중 하나를 현재 프로그램에서 호출할 것입니다. 이 프로그램은my_rand_int.py:
|
1 2 3 4 |
<span style="font-family: georgia, palatino, serif; font-size: 12pt;">import random for i in range(10): print(random.randint(1, 25))</span> |
for 루프로 들어갑니다. 보시다시피, 루프는 10개의 요소로 작동합니다. 프로그램은 1부터 25 사이의 범위(양 끝값 포함)에서 임의의 정수를 출력합니다. 이는 1 and 25이(가) random.randint()의 매개변수임을 의미합니다..
이제 python my_rand_int.py로 프로그램을 실행하면, 다음과 같이 출력에 10개의 임의의 정수가 나타납니다:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
<span style="font-family: georgia, palatino, serif; font-size: 12pt;">Output 6 9 1 14 3 22 10 1 15 9</span> |
random 모듈을 사용했기 때문에 매번 새로운 정수가 출력됩니다. 하지만 25를 초과하거나 그 미만으로 내려가지 않을 것입니다. 때로는 다음과 같이 여러 개의 import 문을 동시에 사용할 수도 있습니다:
|
1 2 |
<span style="font-family: georgia, palatino, serif; font-size: 12pt;">import random import math</span> |
추가 모듈을 사용하기 위해 pi를 math에서 프로그램에 추가하겠습니다. 임의의 정수 개수도 줄여보겠습니다:
|
1 2 3 4 5 |
<span style="font-family: georgia, palatino, serif; font-size: 12pt;">import math import random for i in range(5): print(random.randint(1, 25)) print(math.pi)</span> |
이제 출력은 다음과 같이 표시됩니다:
|
1 2 3 4 5 6 7 8 |
<span style="font-family: georgia, palatino, serif; font-size: 12pt;">출력 18 10 7 13 10 3.141592653589793</span> |
우리는 5개의 무작위 정수와 pi의 근사값을 얻었습니다.
from….import 사용 방법
Apart from import 외에도 알아두어야 할 또 다른 문은 from … import입니다. 이는 도트 표기법을 사용하여 함수를 참조하고 싶지 않을 때 유용합니다. 이 방식을 사용하면 함수를 이름으로 호출하고 참조를 직접 지정할 수 있습니다. 이 예제에서는 randint() 함수를 random 모듈에서 가져올 것입니다:
|
1 |
<span style="font-family: georgia, palatino, serif; font-size: 12pt;">from random import randint</span> |
호출하려는 함수를 직접 지정합니다. 프로그램 내에서도 도트 표기법 없이 함수의 이름만 언급하면 됩니다:
|
1 2 3 |
<span style="font-family: georgia, palatino, serif; font-size: 12pt;">from random import randint for i in range(10): print(randint(1, 25))</span> |
출력은 위에서 본 것과 동일합니다. 차이점은 이제 도트 표기법을 완전히 사용하지 않을 수 있다는 것입니다.
모듈 별칭 지정 방법
또한 다음 키워드에도 익숙해져야 합니다: as 키워드. 이 키워드를 사용하면 모듈 이름과 해당 함수를 변경할 수 있습니다. 기존 모듈이나 새로 가져온 모듈이 동일한 이름을 사용하는 경우 이 작업이 필요할 수 있습니다. 모듈 별칭을 지정하는 문은 다음과 같이 나타납니다:
|
1 |
<span style="font-family: georgia, palatino, serif; font-size: 12pt;">import [module] as [another_name]</span> |
이 예제에서는 math 모듈의 이름을 수정하겠습니다. 이를 축약하여 m으로 변경하겠습니다. 프로그램은 다음과 같습니다:
|
1 2 3 |
<span style="font-family: georgia, palatino, serif; font-size: 12pt;">import math as m print(m.pi) print(m.e)</span> |
보시다시피, pi를 math.pi로 참조하는 대신 m.pi.
로 호출하고 있습니다. 특정 모듈에는 공식 별칭이 있습니다. 사람들이 실제 이름 대신 별칭을 사용하는 경우가 매우 흔하기 때문입니다. matplotlib.pyplot 모듈을 예로 들어 보겠습니다. 공식 문서에서 이 모듈의 별칭은 plt입니다. 다음과 같이 별칭을 만들 수 있습니다:
|
1 |
<span style="font-family: georgia, palatino, serif; font-size: 12pt;">import matplotlib.pyplot as plt</span> |
결론
모듈을 추가하고 가져오는 기능은 파이썬 프로그래밍의 세계를 크게 확장합니다. 내장 함수를 넘어서는 기능을 사용할 수 있게 해줍니다. 기본 파이썬 모듈뿐만 아니라 pip를 사용하여 설치한 모듈도 동시에 사용할 수 있습니다. 더 복잡하거나 정교한 프로그램을 만들 때 이 기능을 꼭 활용해 보세요. 작업을 더 쉽게 만들어 주고, 창의성을 발휘할 수 있게 하며, 강력한 프로그램을 구축하는 데 도움이 됩니다.
마지막으로, 파이썬을 더 잘 활용하는 데 도움이 될 저희 블로그의 몇 가지 리소스를 소개합니다:
즐거운 컴퓨팅 되세요!
댓글
아직 댓글이 없습니다. 첫 번째로 작성해 보세요.