본문 바로가기
반응형
[python3.10 기본] 17. 고급 데이터 구조 17.1 deque와 기타 컬렉션 (collections 모듈)deque는 양쪽 끝에서 빠르게 추가 및 제거가 가능한 양방향 큐입니다. 이 외에도 defaultdict, namedtuple, Counter, OrderedDict 등을 제공합니다. deque 사용법from collections import deque# deque 생성d = deque([1, 2, 3])# 요소 추가d.append(4)d.appendleft(0)print(d) # deque([0, 1, 2, 3, 4])# 요소 제거d.pop()d.popleft()print(d) # deque([1, 2, 3])defaultdict 사용법from collections import defaultdict# 기본값이 int인 defaultdic.. 2024. 7. 2.
[python3.10 기본] 16. 프로젝트 구성 및 배포 16.1 프로젝트 디렉토리 구조효율적인 프로젝트 관리를 위해서는 디렉토리 구조를 잘 설계하는 것이 중요합니다. 일반적으로 파이썬 프로젝트는 다음과 같은 구조를 갖습니다.my_project/├── my_project/│ ├── __init__.py│ ├── module1.py│ ├── module2.py│ └── ...├── tests/│ ├── __init__.py│ ├── test_module1.py│ ├── test_module2.py│ └── ...├── docs/│ ├── conf.py│ ├── index.rst│ └── ...├── setup.py├── README.md├── requirements.txt└── .gitignoremy_project/: 프로.. 2024. 7. 2.
[python3.10 기본] 15. 테스트와 디버깅 15.1 단위 테스트 (unittest 모듈)unittest 모듈은 파이썬 표준 라이브러리로, 단위 테스트를 작성하고 실행하는 데 사용됩니다. 기본 테스트 작성import unittestdef add(a, b): return a + bclass TestMath(unittest.TestCase): def test_add(self): self.assertEqual(add(1, 2), 3) self.assertEqual(add(-1, 1), 0) self.assertEqual(add(0, 0), 0)if __name__ == '__main__': unittest.main()테스트 실행python -m unittest test_script.pysetup과 t.. 2024. 7. 2.
[python3.10 기본] 14. 형 힌팅과 타입 검사 14.1 타입 힌트 문법타입 힌트는 함수 인자와 반환값의 타입을 명시하는 방법입니다. 기본 타입 힌트def add(a: int, b: int) -> int: return a + bdef greet(name: str) -> str: return f"Hello, {name}!"리스트, 튜플, 딕셔너리 타입 힌트from typing import List, Tuple, Dictdef process_list(data: List[int]) -> List[int]: return [x * 2 for x in data]def process_tuple(data: Tuple[int, int]) -> int: return data[0] + data[1]def process_dict(data: Dict[s.. 2024. 7. 2.
[python3.10 기본] 13. 비동기 프로그래밍 13.1 async와 await 키워드비동기 함수는 async def 문으로 정의됩니다. 비동기 함수 내부에서 다른 비동기 함수의 실행을 기다리려면 await 키워드를 사용합니다. 비동기 함수 정의import asyncioasync def say_hello(): print("Hello") await asyncio.sleep(1) print("World")# 이벤트 루프 실행asyncio.run(say_hello())13.2 asyncio 모듈asyncio 모듈은 비동기 I/O, 이벤트 루프, 태스크, 동기화를 지원하는 기능을 제공합니다. 비동기 함수 실행import asyncioasync def main(): print("Start") await asyncio.sleep(1) .. 2024. 7. 2.
[python3.10 기본] 12. 표준 라이브러리 및 외부 라이브러리 사용 12.1 주요 표준 라이브러리 소개os 모듈: 운영 체제와 상호 작용하는 기능을 제공합니다.import os# 현재 작업 디렉토리 확인print(os.getcwd())# 디렉토리 내용 목록 확인print(os.listdir("."))# 디렉토리 생성os.mkdir("new_directory")# 파일 삭제os.remove("example.txt")# 환경 변수 가져오기print(os.getenv("HOME"))sys 모듈: 파이썬 인터프리터와 관련된 정보를 제공합니다.import sys# 파이썬 버전 확인print(sys.version)# 명령줄 인수 가져오기print(sys.argv)# 모듈 검색 경로print(sys.path)math 모듈: 수학 관련 함수와 상수를 제공합니다.import math# .. 2024. 7. 1.
[python3.10 기본] 11. 모듈과 패키지 11.1 모듈 import모듈을 import하여 다른 파이썬 파일의 함수, 클래스, 변수 등을 사용할 수 있습니다. 기본 importimport mathprint(math.sqrt(16)) # 4.0특정 함수/변수 importfrom math import sqrtprint(sqrt(16)) # 4.0별칭 사용import math as mprint(m.sqrt(16)) # 4.0모듈의 모든 내용을 importfrom math import *print(sqrt(16)) # 4.011.2 패키지와 서브패키지패키지는 디렉토리로, 여러 모듈을 포함할 수 있습니다. 패키지에는 __init__.py 파일이 포함되어 있어야 합니다. 패키지 구조mypackage/ __init__.py module1.p.. 2024. 7. 1.
[python3.10 기본] 9. 예외 처리 9.1 try, except, else, finally 구문예외 처리는 try 블록을 사용하여 시도하고, except 블록을 사용하여 예외를 처리합니다. 또한, else와 finally 블록을 사용할 수도 있습니다. try와 except: try 블록 내에서 오류가 발생하면 except 블록이 실행됩니다.try: x = 10 / 0except ZeroDivisionError: print("Division by zero is not allowed.")else: try 블록이 성공적으로 실행되면 else 블록이 실행됩니다.try: x = 10 / 2except ZeroDivisionError: print("Division by zero is not allowed.")else: pr.. 2024. 7. 1.
[python3.10 기본] 8. 파일 입출력 8.1 파일 열기, 읽기, 쓰기, 닫기파일 열기파일을 열기 위해서는 open() 함수를 사용합니다. 이 함수는 파일 경로와 모드를 인자로 받습니다. 모드에는 읽기 모드(r), 쓰기 모드(w), 추가 모드(a), 이진 모드(b), 텍스트 모드(t) 등이 있습니다.# 파일 열기file = open("example.txt", "r") # 읽기 모드로 파일 열기파일 읽기파일을 읽는 방법에는 여러 가지가 있습니다. read(), readline(), readlines() 메소드를 사용합니다.# 파일 전체 읽기with open("example.txt", "r") as file: content = file.read() print(content)# 파일 한 줄 읽기with open("example.txt".. 2024. 7. 1.
[python3.10 기본] 7. 문자열 조작 7.1 문자열 인덱싱과 슬라이싱문자열 인덱싱과 슬라이싱을 사용하면 문자열의 특정 부분을 추출하거나 조작할 수 있습니다. 문자열 인덱싱: 문자열의 특정 위치에 접근할 수 있습니다. 인덱스는 0부터 시작합니다.s = "Hello, World!"print(s[0]) # 'H'print(s[7]) # 'W'print(s[-1]) # '!'문자열 슬라이싱: 문자열의 특정 부분을 추출할 수 있습니다.s = "Hello, World!"print(s[0:5]) # 'Hello'print(s[7:]) # 'World!'print(s[:5]) # 'Hello'print(s[::2]) # 'Hlo ol!'7.2 문자열 메소드문자열 메소드는 문자열을 조작하거나 정보를 추출하는 데 사용됩니다. 대소문자 변환s = .. 2024. 7. 1.
반응형