파이썬연습 18

[파이썬 연습] 딕셔너리(Dictionary)란?

딕셔너리(Dictionary)란?파이썬의 딕셔너리(Dictionary)는 키(key)-값(value) 쌍으로 이루어진 자료형입니다. 데이터를 이름으로 매핑하여 저장하기 때문에 빠르고 효율적인 데이터 검색이 가능합니다. 딕셔너리는 {} 중괄호를 사용해 선언합니다.딕셔너리의 주요 특징키-값 쌍으로 구성:키: 고유하며 불변(immutable)해야 함 (문자열, 숫자, 튜플 등 가능).값: 변경 가능한(mutable) 모든 자료형 사용 가능.순서 유지 (파이썬 3.7 이상):딕셔너리는 삽입된 순서를 유지합니다.중복 키 불허:동일한 키가 여러 개 존재하면, 마지막에 정의된 키-값 쌍이 유지됩니다.변경 가능(Mutable):딕셔너리는 추가, 삭제, 수정 가능.딕셔너리 생성 방법# 빈 딕셔너리 생성empty_dict..

[파이썬 연습] 파이썬 문자열 포매팅

파이썬 문자열 포매팅문자열 포매팅(String Formatting)은 텍스트 안에 변수나 값을 삽입해 동적인 문자열을 생성하는 기술입니다. 파이썬에서는 문자열 포매팅을 수행하는 다양한 방법을 제공합니다. 대표적으로는 % 연산자 방식, str.format() 메서드, 그리고 f-string 방식이 있습니다.1. % 연산자 방식C 언어의 printf 스타일을 따른 방식으로, 문자열 안에 포매팅 지시자를 사용하여 값을 삽입합니다.사용법:name = "Alice"age = 25print("Hello, my name is %s and I am %d years old." % (name, age))주요 포매팅 지시자:%s: 문자열%d: 정수%f: 부동소수점 (기본적으로 소수점 이하 6자리)%.2f: 소수점 이하 2자..

[파이썬 연습] 파이썬 내장 함수 bool 연습

다음 연습 문제를 풀어보세요 다음 두 수를 bool() 클래스를 사용하여 num_1이 num_2보다 크거나 같은 수인지 확인하세요.num_1 = 20num_2 = 40  풀이num_1 = 20num_2 = 40print(bool(num_1 >= num_2))   다음 두 수를 bool() 클래스와 not 연산자를 사용하여 num_1이 num_2보다 크거나 같은 수인지 확인하세요.num_1 = 20num_2 = 40  풀이num_1 = 20num_2 = 40print('1.', bool(not (num_1 >= num_2)))print('2.', not bool(num_1 >= num_2))

[파이썬 연습] 주식 거래의 변동성 돌파 전략

주식 거래의 변동성 돌파 전략변동성 돌파 전략을 구현하고 백테스팅하기 위한 파이썬 코드를 작성하고자 한다면, 여기에 표준 Python 라이브러리를 사용하여 삼성전자 주식 데이터에 적용할 수 있는 전체 코드 예시를 제공합니다. 이 예시는 pykrx 모듈을 사용하여 데이터를 불러오고, 변동성 돌파 전략을 구현하여 그 성과를 평가합니다.완성된 파이썬 코드# 필요한 라이브러리를 불러옵니다.import pandas as pdfrom pykrx import stockimport numpy as np# 삼성전자의 주식 데이터를 2023년 1월 1일부터 2023년 12월 31일까지 불러옵니다.start_date = '2023-01-01'end_date = '2023-12-31'df = stock.get_market_o..

[파이썬 연습] 로깅과 어노테이션

로깅과 어노테이션로깅과 어노테이션을 함께 사용하는 방법을 설명드리겠습니다. 로깅은 프로그램의 실행 과정을 추적하고 기록하는 방법입니다. 파이썬의 logging 모듈을 사용하면 다양한 수준의 로그 메시지를 쉽게 기록할 수 있습니다. 이를 함수에 어노테이션으로 추가하여 함수 호출 시마다 로그를 남길 수 있습니다.로깅 설정먼저 로깅 설정을 합니다. 로깅 설정은 일반적으로 프로그램의 시작 부분에 위치시킵니다.import logginglogging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')logger = logging.getLogger(__name__)데코레이터를 사용한 로깅로깅을 함수에 추가하려면 데코레이..

[파이썬 연습] 어노테이션과 타입 힌트

파이썬에서 타입 힌트(Type Hint)는 함수의 인자와 반환값의 타입을 명시하여 코드의 가독성을 높이고, 코드 분석 도구나 IDE가 타입을 추론하는 데 도움을 주기 위해 사용됩니다. 어노테이션(Annotation)은 이러한 타입 힌트를 사용하는 방법입니다.타입 힌트의 기본 사용법타입 힌트는 함수의 인자와 반환값에 대한 타입을 명시할 수 있습니다. 이를 통해 코드를 읽는 사람이 함수의 의도를 더 쉽게 이해할 수 있습니다.1. 기본 타입 힌트def add(x: int, y: int) -> int: return x + yresult = add(3, 5)print(result) # 8위 예제에서 x와 y는 int 타입이며, 함수는 int 타입을 반환한다고 명시하고 있습니다.2. 다양한 타입 힌트파이썬의..

[파이썬 연습] 파이썬 데코레이터

파이썬 데코레이터파이썬 데코레이터(Decorator)는 기존 함수나 메서드에 추가적인 기능을 동적으로 부여하는 데 사용되는 디자인 패턴입니다. 데코레이터는 함수를 인자로 받아 새로운 함수를 반환하는 함수입니다. 데코레이터를 사용하면 코드의 재사용성을 높이고 중복을 줄일 수 있습니다.기본 데코레이터 사용법1. 기본 데코레이터 예제먼저 간단한 데코레이터를 만들어 보겠습니다.def my_decorator(func): def wrapper(): print("Something is happening before the function is called.") func() print("Something is happening after the function is calle..

[파이썬 연습] 내장 변수 __name__

내장 변수 name파이썬에서 내장 변수 __name__은 모듈의 이름을 나타내는 특별한 변수입니다. 이 변수는 모듈이 직접 실행되는지 아니면 다른 모듈에 의해 임포트(import)되는지 여부를 확인하는 데 사용됩니다.__name__의 동작 원리스크립트가 직접 실행될 때: __name__ 변수는 "__main__"으로 설정됩니다.모듈이 임포트될 때: __name__ 변수는 모듈의 이름으로 설정됩니다.이를 활용하면 모듈이 직접 실행될 때와 임포트될 때의 동작을 구분할 수 있습니다.예제예제 1: 기본 사용법my_module.py라는 파일을 만들고 다음과 같이 작성합니다:# my_module.pydef hello(): print("Hello, World!")if __name__ == "__main__": ..

[파이썬 연습] 예외 처리 작성하기

예외 처리 작성하기예외 처리는 프로그램 실행 중 발생할 수 있는 오류를 처리하여 프로그램이 중단되지 않도록 하는 방법입니다. 파이썬에서는 try, except, else, finally 키워드를 사용하여 예외 처리를 할 수 있습니다.기본 구조try: # 예외가 발생할 가능성이 있는 코드except 예외타입 as e: # 예외가 발생했을 때 실행할 코드else: # 예외가 발생하지 않았을 때 실행할 코드finally: # 예외 발생 여부와 관계없이 항상 실행할 코드예제1. 기본적인 예외 처리try: x = int(input("숫자를 입력하세요: ")) y = int(input("나눌 숫자를 입력하세요: ")) result = x / yexcept ValueError: ..

[파이썬 연습] 클래스와 객체

클래스와 객체프로그래밍에서 클래스를 사용하여 사물처럼 코드를 작성하는 것은 객체지향 프로그래밍(OOP)의 핵심입니다. 클래스와 객체는 데이터를 구조화하고 기능을 묶어주는 강력한 도구입니다. 파이썬에서 클래스를 정의하고 객체를 생성하는 방법을 소개하겠습니다.클래스 정의클래스는 객체의 설계도입니다. 클래스를 정의하려면 class 키워드를 사용합니다.class 클래스이름: def __init__(self, 매개변수1, 매개변수2, ...): self.속성1 = 매개변수1 self.속성2 = 매개변수2 def 메서드이름(self, 매개변수들): # 메서드 내용객체 생성클래스에서 객체를 생성하려면 클래스 이름을 함수처럼 호출합니다.객체이름 = 클래스이름(인자1, 인..