1. 모듈이란 이미 만들어진 훌륭한 기능들로, 사용자들이 쉽게 사용하도록 묶어놓은 것이다.
2. 파이썬 모듈은 내부 모듈, 외부 모듈 그리고 사용자 모듈로 구분할 수 있다.
내부 모듈: 파이썬 설치 시 기본적으로 같이 설치되는 모듈
외부 모듈: 별도 설치 후 사용할 수 있는 모듈
사용자 모듈: 사용자가 직접 정의한 모듈
3. 모듈은 특정 기능을 가지고 있는 파이썬 파일을 의미한다.
# calculator.py
def add(n1, n2):
print('덧셈 결과: {}'.format(n1 + n2))
def sub(n1, n2):
print('뺄셈 결과: {}'.format(n1 - n2))
def mul(n1, n2):
print('곱셈 결과: {}'.format(n1 * n2))
def div(n1, n2):
print('나눗셈 결과: {}'.format(n1 / n2))
import calculator
calculator.add(10, 20)
calculator.sub(20, 10)
calculator.mul(10, 30)
calculator.div(20, 10)
# 출력 결과
# 덧셈 결과: 30
# 뺄셈 결과: 10
# 곱셈 결과: 300
# 나눗셈 결과: 2.0
4. 문자열을 뒤집는 방법은 세 가지가 있다. +를 이용하는 방법, 문자열 슬라이싱을 이용하는 방법, 리스트로 바꾼 후 reverse() 함수를 이용하는 것이다.
str = 'Hello World'
def reverse_str(string):
new_string = ''
for elem in string:
new_string = elem + new_string
print(new_string)
def reverse_str2(string):
new_string = string[::-1]
print(new_string)
def reverse_str3(string):
string_list = list(string)
string_list.reverse()
new_string = ''.join(string_list)
print(new_string)
reverse_str(str) # dlroW olleH
reverse_str2(str) # dlroW olleH
reverse_str3(str) # dlroW olleH
5. 모듈을 사용할 때는 import, from, as를 이용한다.
- import는 모듈을 불러오는 가장 기초적인 키워드이다
- import ~~~ as ...로 하면 모듈 이름을 ...로 바꿔 사용(단축)할 수 있다.
- from ~~~ import ... 기능은 모듈 전체에서 특정 기능만 불러오는 기능이다.
# 1
import reverse_str
str = 'hello world'
reverse_str.reverse_str(str)
reverse_str.reverse_str2(str)
reverse_str.reverse_str3(str)
# 2
import reverse_str as rev
str = 'hello world'
rev.reverse_str(str)
rev.reverse_str2(str)
rev.reverse_str3(str)
# 3
from reverse_str import reverse_str
reverse_str(str)
6. 전역변수 __name__을 이용해 실행파일을 지정한다.
7. __name__에는 모듈 이름이 저장되거나 '__main__'이 지정된다.
8. __name__ 변수는 불러온 모듈의 파일명을 불러오는 기능이다. 모듈 자체를 실행한다면 __main__을 출력한다.
# 모듈 자체를 테스트할 때 간단히 if __name__ == '__main__':를 사용할 수 있다
# 파일명: unitConversion.py
def cmToMm(n):
return round(10 * n, 3)
def cmToInch(n):
return round(n * 0.393, 3)
def cmToM(n):
return round(n * 0.01, 3)
def cmToFit(n):
return round(n * 0.032, 3)
if __name__ == '__main__':
print('10cmToMm = {}'.format(cmToMm(10)))
print('10cmToInch = {}'.format(cmToInch(10)))
print('10cmToM = {}'.format(cmToM(10)))
print('10cmToFit = {}'.format(cmToFit(10)))
# 그렇게 하면 다른 파일에서 모듈을 실행할 때 불필요한 기능이 실행되는 것을 방지해준다
import unitConversion as uc
val = float(input('값 입력: '))
print(uc.cmToMm(val))
print(uc.cmToInch(val))
print(uc.cmToM(val))
print(uc.cmToFit(val))
9. 패키지를 이용하면 관련있는 모듈을 그룹으로 관리할 수 있다. 불러올 때는 from ~~~ import ...를 사용하면 된다.
10. 좋은 모듈을 파이썬 프로젝트 내에서 어디에서나 사용하고 싶다면, site-packages 폴더 안에 넣으면 된다.
11. 수학, 난수, 시간 모듈은 유용하게 사용된다.
# 수학 관련 함수
# 합
listVar = [2, 5, 12, 13, 18, 53, 29]
print(sum(listVar))
# 132
# 최솟값
listVar = [2, 5, 12, 13, 18, 53, 29]
print(min(listVar))
# 2
# 거듭제곱
print(f'pow(13,2): {pow(13, 2)}')
# pow(13,2): 169
# 반올림
print(f'round(123.456, 1): {round(123.456, 1)}')
# round(123.456, 1): 123.5
import math
# 절대값
print(f'math.fabs(-10): {math.fabs(-10)}')
# math.fabs(-10): 10.0
# 올림
print(f'math.ceil(5.21): {math.ceil(5.21)}')
# math.ceil(5.21): 6
# 내림
print(f'math.floor(5.21): {math.floor(5.21)}')
# math.floor(5.21): 5
# 버림
print(f'math.trunc(5.21): {math.trunc(5.21)}')
# math.trunc(5.21): 5
# 최대공약수
print(f'math.gcd(14, 21) : {math.gcd(14, 21)}')
# math.gcd(14, 21) : 7
# 팩토리얼
print(f'math.factorial(10): {math.factorial(10)}')
# math.factorial(10): 3628800
# 제곱근
print(f'math.sqrt(2): {math.sqrt(2)}')
# math.sqrt(2): 1.4142135623730951
# 날짜 관련 함수
import time
lt = time.localtime()
print(lt)
# time.struct_time(tm_year=2024, tm_mon=2, tm_mday=10,
# tm_hour=3, tm_min=14, tm_sec=49, tm_wday=5, tm_yday=41, tm_isdst=0)
print(f'lt.tm_year: {lt.tm_year}')
print(f'lt.tm_mon: {lt.tm_mon}')
print(f'lt.tm_mday: {lt.tm_mday}') ## 현재 월의 일
print(f'lt.tm_hour: {lt.tm_hour}')
print(f'lt.tm_min: {lt.tm_min}')
print(f'lt.tm_sec: {lt.tm_sec}')
print(f'lt.tm_wday: {lt.tm_wday}') ## 요일(월요일 = 0)
print(f'lt.tm_yday: {lt.tm_yday}') ## 올해의 전체 일수
'파이썬 공부중 > 파이썬 중급' 카테고리의 다른 글
| 파이썬 중급 05. 파일 읽고 쓰기 (1) | 2024.02.10 |
|---|---|
| 파이썬 중급 04. 상속, 오버라이드, 다중 상속, 예외 (1) | 2024.02.10 |
| 파이썬 중급 03. 객체 지향 프로그래밍, 클래스, 얕은 복사와 깊은 복사 (1) | 2024.02.10 |
| 파이썬 중급 01. 함수에 대하여 (1) | 2024.02.10 |