본문 바로가기

Python/개념32

파이썬 비동기 1. 동기(Synchronous)- 작업이 순차적으로 실행되는 것 - 하나의 작업이 끝나기 전에는 다음 작업을 시작하지 않음 동기 원리             def func1():              print('1')              print('2')              print('3')          def main():              func1()           main()     1 2 3  시간차를 두었을 때            # main 함수는 smile 함수가 종료될 때까지 기다림        # smile 함수가 종료되기 전에 main 함수에서 더 처리해야 할 일이 있다면? --> 비동기        import time          def smile(.. 2024. 6. 3.
데이터베이스와 MongoDB 연결 1. 데이터베이스와 MongoDB 연결   * MongoDB 새로운 Project 만들기더보기        설치하기             #MongoDB와 연결하기 위한 드라이버 모듈을 설치(설치 후 "세션 다시 시작 및 모두 실행")          !python -m pip install "pymongo[srv]"==3.11  런타임 다시 실행  import            from pymongo import MongoClient    MongoDB와 연결하기             url = 'mongodb+srv://leesarah721:9mTiuY6G1vsxBg4A@cluster0.s6fyzfr.mongodb.net/?retryWrites=true&w=majority&appName=Cluste.. 2024. 6. 3.
Day 11. 재귀호출 1. 재귀호출(recursive call) - 함수 안에서 동일한 함수를 호출하는 형태 - 여러 알고리즘, 고급 정렬 알고리즘 작성시 사용됨 재귀 호출(recursion)은 함수가 자기 자신을 다시 호출하는 기법을 말합니다. 재귀 호출을 사용하면 복잡한 문제를 간단하고 우아하게 풀 수 있지만, 잘못 사용하면 프로그램의 성능에 문제가 발생할 수 있습니다. 무한 재귀: 재귀 함수의 기본 케이스가 없거나 잘못되면 함수는 무한히 자신을 호출하게 됩니다. 이렇게 되면 프로그램은 결국 스택 오버플로우 에러를 발생시키게 됩니다. 성능: 재귀 호출은 간단하고 우아하게 보일 수 있지만, 반복문을 사용한 코드보다 더 많은 메모리와 시간을 소모할 수 있습니다. 특히 파이썬에서는 재귀 호출에 제한이 있으므로 (기본적으로 10.. 2024. 3. 29.
Day 9. 과제 _ 파일 입출력을 이용한 단어장 만들기 문제) 아래 조건을 만족하는 영어 단어장을 만들어보자 * 1.등록하기, 2.출력하기, 3.저장하기, 4.불러오기, 5.종료하기 6.수정하기 7.삭제하기 * 1을 선택했을 경우 * 단어를 입력하세요: apple * 뜻을 입력하세요: 사과 * 레벨을 입력하세요: 1 * 등록되었습니다. * 2를 선택했을 경우 * apple : 사과 (레벨 1) * 3을 선택했을 경우 * 저장되었습니다. (파일에 저장, words.txt) * 4를 선택했을 경우 * 프로그램 시작 시 기존에 단어장 파일이 존재하는지 확인하고 그 파일에 있는 데이터를 메모리에 불러옴(없으면 스킵) * 5를 선택했을 경우 * 프로그램을 종료합니다. * 6을 선택할 경우 * 수정할 단어를 선택하세요: apple * 선택한 단어가 없습니다.or * a.. 2024. 3. 27.
Day 10. 과제: 디렉토리 관련 프로그램 (주) 좋은 기업 폴더에 많은 부서의 문서들이 섞여있습니다. 날짜순서대로 정렬이 되어있어서 어느 부서의 문서인지 구분할 수 없습니다. 먼저 압축을 풀어준 뒤 파일들을 해당부서 폴더로 들어가도록 정리해보도록 하겠습니다. 1. 파일 압축 풀기 ㄴ 광고연감.zip과 영상모음.zip 파일들이 압축해체되어 나온 것을 볼 수 있습니다. 2. 파일 엑셀명으로 정리하기 1. 파일명을 엑셀로 정리합니다. ㄴ엑셀에 파일명들이 저장된 것을 볼 수 있습니다. 3. 파일 정리하기 1. 부서명을 뽑아냅니다. 2. 기타 폴더까지 만듭니다. 3. 디렉토리를 만듭니다. 4. 디렉토리안에 파일들을 정리해 넣습니다. ㄴ각 부서별 폴더로 이동한 것을 볼 수 있습니다. 2024. 3. 24.
Day 10. 디렉토리 관리 프로그램 더보기 주피터 노트북 실행하면 그 해당 폴더를 중심으로 저장하거나 관리 실행됨, 위치가 중요 주피터 노트북 설치 1) 파이썬이 설치되어 있어야 함 (pip도 설치되어 있음) 2) pip install jupyter (설치가 되지 않는 경우 pip install --upgrade pip 명령 실행 후 다시 설치) 3) 주피터 노트북 실행 (1) jupyter notebook --notebook-dir='C:\Ryuzy\Python' (2) 원하는 디렉토리로 이동 후 실행 cd 내경로 jupyter notebook 주피터 노트북 단축키 셀 선택 모드(ESC) a: 위에 새로운 셀 추가 b: 아래 새로운 셀 추가 c: 셀 복사하기 v: 셀 붙여넣기 x: 셀 잘라내구 dd: 셀 삭제하기 m: 마크다운으로 변경 .. 2024. 3. 22.
Day 9-2. 파일 입출력 라이브러리 1. OS 파이썬의 os 모듈은 운영 체제와 상호 작용하는 많은 함수와 유틸리티를 제공합니다. 이 모듈을 사용하면 파일, 디렉터리 또는 운영 체제에 관한 작업을 수행할 수 있습니다. os.getcwd() : 현재 경로 가져오기 import os # 현재 경로 가져오기 os.getcwd() # 디렉토리 안에 파일(디렉토리)을 리스트로 반환 os.listdir(os.getcwd()) /content ['.config', 'sample_data'] os.chdir() : 작업 디렉토리 변경하기 # 작업 디렉토리 변경하기 os.chdir( ./data/ ) os.path.join( 'path명' , '파일명' ) : 파일경로 합쳐주기 data_dir = './data/' file_path = os.path.jo.. 2024. 3. 21.
Day 9-1. 변수 타입 어노테이션 1. 변수 타입 어노테이션 변수 타입 어노테이션은 파이썬 3.5부터 도입된 기능으로, 변수의 예상 타입을 명시하는데 사용됩니다. 이는 주로 코드의 가독성을 높이고, 정적 타입 검사 도구(예: mypy)를 사용하여 타입 오류를 사전에 잡아내기 위한 목적으로 사용됩니다. 타입 어노테이션은 실제로 변수의 타입을 강제하는 것이 아니라, 개발자가 변수가 어떤 타입을 가져야 할 것으로 예상하는지 명시하는 것입니다. 2. 기본 타입 어노테이션 [기본] name = "김사과" age = 20 height = 160.5 is_lover = True [어노테이션] name: str = "김사과" age: int = 20 height: float = 160.5 is_lover: bool = True 3. 리스트, 튜플, 딕.. 2024. 3. 21.
Day 8-2. 파일 입출력 더보기 스트림을 통해서 윈도우 안에 파일을 생성한다. - 출력 운영체제의 힘을 빌려서 파일을 입출력한다. input: 파이썬으로 가지고오기 output: 파이썬 밖으로 생성 파일열기: input + output, 둘 다 하는 것 (파일 기존에 있던 것을 확인한다? X) 1. 파일 열기 파이썬에서 파일 입출력은 다양한 용도로 사용됩니다. 텍스트 파일, 바이너리 파일, CSV 파일, JSON 파일 등을 읽고 쓸 수 있습니다. 파일을 열려면 open 함수를 사용합니다. f = open("파일명", "모드") 파일명: 열고자 하는 파일의 이름이나 경로 모드: 파일을 어떻게 열 것인지를 지정 r: 읽기 모드 (기본값) -> 안으로 input w: 쓰기 모드 (파일이 있으면 덮어쓰기) -> 바깥으로 output a.. 2024. 3. 20.