파이썬 기초: 라이브러리-파이썬 표준 라이브러리

  • 파이썬에는 내장되어 있는 수많은 표준 라이브러리가 있습니다. 그 중에서 자주 사용할만한 몇 개의 라이브러리의 예시를 살펴보겠습니다. 그 외의 필요한 라이브러리들은 파이썬 공식 사이트의 레퍼런스를 참고하시기 바랍니다.

1. math 모듈

  • 정밀한 계산을 위한 복잡한 수학 연산 라이브러리
  • 삼각함수, 제곱근 등 연산 예시

      import math
    
      print(math.sin(math.radians(45)))
      print(math.sqrt(2))
      print(math.factorial(5))
    

2. random 모듈

  • 난수 생성 기능. 어떤 수가 나올지 예측할 수 없는 무작위 동작 구현

      import random
    
      for i in range(5):
          print(random.random())
    
      for i in range(5):
          print(random.randint(1, 10))
    
     import random
    
      # randrange()를 사용해서 0~100 사이의 숫자 생성하기
      print ("Random number from 0~100 is : ",end="")
      print (random.randrange(100))
    
      # randrange()를 사용해서 50~100 사이의 숫자 생성하기
      print ("Random number from 50~100 is : ",end="")
      print (random.randrange(50,100))
    
      # randrange()를 사용해서 50~100 사이의 숫자를 5 간격을 기준으로 생성하기
      print ("Random number from 50~100 skip 5 is : ",end="")
      print (random.randrange(50,100,5))
    
      import random
    
      # 리스트에서 랜덤으로 값 가져오기
      list1 = [1, 2, 3, 4, 5, 6]
      print(random.choice(list1))
    
      # 문자열에서 랜덤으로 값 가져오기
      string = "striver"
      print(random.choice(string))
    
      import random
    
      # 리스트 정의
      sample_list = ['A', 'B', 'C', 'D', 'E']
    
      print("Original list : ")
      print(sample_list)
    
      # 리스트 섞기
      random.shuffle(sample_list)
      print("\nAfter the first shuffle : ")
      print(sample_list)
    
      # 두 번째 셔플(섞기)
      random.shuffle(sample_list)
      print("\nAfter the second shuffle : ")
      print(sample_list)
    
      import random
    
      # 리스트로부터 길이 3의 랜덤 아이템으로 구성된 리스트를 샘플링하여 출력
      list1 = [1, 2, 3, 4, 5, 6]
      print("With list:", random.sample(list1, 3))
    
      # 문자열로부터 길이 4의 랜덤 아이템으로 구성된 리스트를 샘플링하여 출력
      string = "GeeksforGeeks"
      print("With string:", random.sample(string, 4))
    
      # 튜플로부터 길이 4의 랜덤 아이템으로 구성된 리스트를 샘플링하여 출력
      tuple1 = ("ankit", "geeks", "computer", "science",
                      "portal", "scientist", "btech")
      print("With tuple:", random.sample(tuple1, 4))
    
      # set(집합)으로부터 길이 3의 랜덤 아이템으로 구성된 리스트를 샘플링하여 출력
      set1 = {"a", "b", "c", "d", "e"}
      print("With set:", random.sample(set1, 3))
    
      # '오류 설명' 버튼을 이용해보자.
    
      import random
    
      # set(집합)으로부터 길이 3의 랜덤 아이템으로 구성된 리스트를 샘플링하여 출력
      set1 = {"a", "b", "c", "d", "e"}
      # set을 list로 변환하여 sample 함수에 전달합니다.
      print("With set:", random.sample(list(set1), 3))
    
      import random
    
      for i in range(5):
          random.seed(1234)
          print(random.randint(1, 1000))
    

3. sys 모듈

import sys

print("버전:", sys.version)
print("플랫폼:", sys.platform)
if sys.platform == "win32":
  print(sys.getwindowsversion())
else:
  print("윈도우가 아닙니다.")
print("바이트 순서:", sys.byteorder)
print("모듈 경로:", sys.path)

4. os 모듈

import os

# 기본 정보 출력
print("현재 운영체제:", os.name)
print("현재 폴더:", os.getcwd())
print("현재 폴더의 내부 요소:", os.listdir())
# 폴더 생성
os.mkdir("hello")
# 폴더 삭제
os.rmdir("hello")
# 파일 생성
with open("original.txt", "w") as file:
  file.write("hello")
# 파일명 변경
os.rename("original.txt", "new.txt")
# 파일 삭제
os.remove("new.txt")
  • 시스템 명령어 실행
    • Unix/Linux 계열은 Windows 계열과 명령어에 대한 결과가 다름
    • Unix에서 반환 값은 두 개의 서로 다른 정보를 포함하는 16비트 숫자이며, 여기에서의 결과 0은 오류가 없음을 의미함
      • 여기에서는 16비트 숫자로, 로우 바이트가 프로세스를 종료한 신호 번호이고 하이 바이트가 종료 상태(신호 번호가 0인 경우)를 의미함
      # 시스템 명령어 실행
      os.system("dir")
    

5. time 모듈

  • 날짜와 시간 관련 기능 제공
    • 기본적으로 유닉스 시간을 기준으로 함
      import time
      print(time.time())
    
      # 일상 시간 문자열로 변환 가능
      t = time.time()
      print(time.ctime(t))
    
      # 실행 시간 측정
      start = time.time()
    
      for a in range(100):
      print(a)
    
      end = time.time()
      print(end - start)
    

6. urllib 모듈

  • URL을 다루는 라이브러리
    • urlopen() 함수 : URL 주소의 페이지 열기
      from urllib import request
    
      target = request.urlopen("https://google.com")
      output = target.read()
    
      print(output)
    

7. calendar 모듈

  • 달력 기능
  • 인수로 받은 연도의 달력 객체 반환
  • month 함수
    • 연도와 달을 인수로 받아 해당 월 달력 객체 반환
  • weekday 함수
    • 특정 날짜가 어떤 요일인지 조사

      import calendar
      
      print(calendar.calendar(2022))
      print(calendar.month(2022, 9))