본문 바로가기
728x90
반응형

Python286

[Py] Context Manager: with statement! 1. Python의 Context Manager 개념Python의 Context Manager는 resource(자원, 리소스)를 안전하게 관리하기 위한 도구(특정 메서드를 구현한 클래스 객체임). 일반적으로 file(파일), socket(네트워크 소켓), connection(데이터베이스 연결)과 같은 컴퓨터의 자원(resouce)를 사용할 때,시작(or open)과종료(or close) 작업을 명시적으로 처리해야 함.Context Manager를 사용하면 이를 간단하고 안전하게 처리할 수 있음. Context Manager는with statement와 함께 사용됨.resource를 사용할 때, open과 close 관련 정해진 작업들을 자동으로 수행할 수 있음.2. Context Manager의 동작 .. 2024. 11. 27.
[Py] Higher-order Function (고차함수) 정의 : Higher-order function(고차 함수)란, 다음 조건 중 하나 이상을 충족하는 function를 가리킴:다른 함수를 argument로 받을 수 있는 function다른 함수를 반환할 수 있는 function즉, Higher-order function이란 function을 다루는 function이라고 생각하면 됨. Python에서는 function이 1급 객체(First-class object)이기 때문에,function이 argument(인수)로 다른 function에 넘겨지거나,다른 function에서 return value(반환값)으로 사용되는 것이 가능함.2023.07.15 - [Python] - [Python] first-class object (일급객체) [Python] .. 2024. 11. 20.
[Py] 숫자 야구 게임: structured programming, type annotation, and OOP 야구 게임의 규칙.각 플레이어가 서로의 숫자를 맞추는 게임.상대방의 3자리 숫자를 추측해야 함.숫자는 0에서 9 사이의 서로 다른 숫자로 구성됨.숫자와 위치를 정확히 맞추면 "스트라이크" 획득.숫자만 맞추고 위치가 다르면 "볼" 획득.정답을 맞출 때까지 턴을 번갈아 진행.최소한의 시도로 정답을 맞추는 것이 목표.이를 컴퓨터와 게임을 하는 것으로 바꾸고, 컴퓨터의 숫자만을 맞추는 것으로 변경하여 최소한의 시도횟수가 가장 높은 스코어로 표시되도록 Python으로 구현하면 다음과 같음.Python 구현함수를 이용하여 structured programming을 이용해 구현함.Function으로 모듈화.전역변수(global variable)를 최대한 피하여 구현.import randomdef generate_se.. 2024. 11. 20.
[DIP] Block Truncation Coding (BTC) 참고로, 이 글의 원문은 https://cmparlettpelleriti.github.io/BTC.html 임: 2024.11.14 현재 링크가 깨짐.1. Block Truncation Coding(BTC)란허프만 코딩 과 달리,BTC는 인코딩 과정에서 약간의 정보를 손실함: irreversible.그러나 BTC를 이미지에 적용할 때, 발생하는 정보 손실은 종종 눈에 띄지 않거나, 적어도 이미지의 해석에 방해가 되지 않는 경우가 일반적임.원본 이미지가 시베리안 허스키라면,BTC를 압축 후 다시 재구성된 이미지가 포메리안이 아닌 시베리안 허스키임을 인식할 수 있음.BTC는 다음과 같은 아이디어에 기반합니다:두 (확률)분포가 동일한 parameters(매개변수들)을 가지고 있다면,그들은 매우 유사할 가능성이.. 2024. 11. 18.
[Py] Queue 와 Stack 구현하기: 상속과 오버라이딩 이용. 다음 코드 참고main scriptfrom ds_stack import Stackfrom ds_queue import Queuedef test_stack(): print("Testing Stack...") stack = Stack(10) # 숫자 1부터 10까지 push + 11도 push for i in range(1, 12): stack.push(i) print(f"Pushed {i}, Stack size: {stack.size()}") # 모든 요소를 pop while not stack.is_empty(): print(f"Popped {stack.pop()}, Stack size: {stack.size()}") # 빈 상태에.. 2024. 11. 13.
[Py] 사칙연산 구현 예제 문제Python 모듈을 작성하여 두 개의 숫자를 입력받아 사칙연산 결과를 출력하는 프로그램을 구현할 것.모듈의 설계 및 기능 요구 사항:두 숫자에 대한 사칙연산(덧셈, 뺄셈, 곱셈, 나눗셈)을 수행하는 함수를 모듈 내에 정의할 것.각 사칙연산을 담당하는 함수를 다른 Python 파일에서 import하여 사용할 수 있도록 할 것.연산 과정에서 발생할 수 있는 예외를 함수 내에서 처리할 것:예외 발생 시, None을 반환.예외 없이 정상적으로 수행되면, 연산 결과(float 타입)를 반환.모듈이 메인 스크립트로 실행되는 경우:사용자로부터 두 개의 숫자와 연산 종류(+, -, *, /)를 입력받아 해당 연산의 결과를 출력할 것.사용자는 q를 입력하여 프로그램을 종료할 수 있으며, 그 외의 경우 계속해서 입력받.. 2024. 11. 13.
728x90
반응형