[PYTHON]

[CLASS101 AI자동투자봇 만들기]파이썬 기초문법①

b___gly 2022. 2. 19. 02:06
  • 자료형
name = '홍길동'
print("{}님, 안녕하세요!".format(name)) 
print(f"{name}님, 안녕하세요!")

 

  • 비교연산자
    x < y	x가 y보다 작으면 True / 작지 않으면 False
    x > y	x가 y보다 크면 True / 크지 않으면 False
    x == y	x와 y가 같으면 True / 같지 않으면 False
    x != y	x와 y가 같지 않으면 True / 같으면 False
    x >= y	x가 y보다 크거나 같으면 True / 작으면 False
    x <= y	x가 y보다 작거나 같으면 True / 크면 False

 

  • if, elif, else 조건문
ex3_a = 1
ex3_b = 2

if ex3_a > ex3_b:
    print("ex3_a 가 크다")
elif ex3_a < ex3_b:
    print("ex3_b 가 크다")
else:
    print("ex3_a와 ex3_b는 같다.")

 

  • 논리연산자
and , or , not 
    x and y:   x와 y 모두 참이어야 참
    x or y: x와 y 둘 중에 하나만 참이어도 참
    not x: x의 반대 값 (x가 참이면 -> 거짓 / 거짓이면 -> 참)
0, None, 비어있는 값을 제외한 모든 값은 True
0, None, 비어있는 값은 False로 해석 
** None: 아무것도 없다는 것을 나타내는 자료형

 

  • 클래스와 객체
class Stock:  # Stock 이라는 이름을 가진 클래스를 정의
    def __init__(self, stock_name, stock_price, stock_rate):  # __init__: '생성자'(특별한 함수) 라고 한다. 클래스의 객체를 만들 때 자동으로 실행이 된다.
        self.name = stock_name  # 인스턴스변수 : self.name, self.price, self.rate를 인스턴스 변수라고 한다.
        self.price = stock_price
        self.rate = stock_rate
** self ??
    - class 안의 함수들은 첫 매개변수(=parameter) 로 self 를 사용
    - self는 해당 클래스의 객체 자신.  
    - 객체를 호출할 때 호출한 객체 자신이 전달되기 때문에 self를 사용한 것
    
# id() 내장 함수는 객체를 입력값으로 받아서 객체의 고유값(일련번호)을 반환하는 함수//주민번호 같은
# 출력 결과 self의 일련번호와 동일

self는 첫 번째 객체라는 말.

그니까, self가 약간 가이드의 깃발처럼 이 뒤에 정해진 인스턴스들이 오면 된다는 걸 지정해주는 느낌인듯.

self는 어떤 객체를 만드는건지 알려주기 위해 쓰는거다.

객체, 매개변수, 인스턴스 말이 너무 헷갈림.

 

  • 클래스와 메서드

클래스 : 속성(객체) + 기능(메서드)

클래스 안의 클래스

class Test:  # Test 이라는 이름을 가진 클래스를 정의
    def __init__(self, tx, ty):  # 메서드(method = function) : 클래스 내부에 정의 된 함수
        self.x = tx  # 인스턴스변수 : self.name, self.price, self.rate를 인스턴스 변수라고 한다.
        self.y = ty


class Test2:
    def __init__(self):
        self.item = Test(1, 2)

    def print(self):
        print(f"self.item.x : {self.item.x}, self.item.y : {self.item.y}")

 

  • 실습 
class Stock4 :
    def __init__(self, name, close, high, low):
        self.name = name
        self.close = close
        self.high = high
        self.low = low

class Calculator2 :
    def __init__(self,close,high,low):
        self.close, self.high, self.low = close,high,low

    def average(self):
        return (self.close + self.high + self.low) / 3


item1 = Stock4('삼성전자',67700,69500,67000)
item2 = Stock4('SK텔레콤',232000,235000,229000)
cal1 = Calculator2(item1.close,item1.high,item1.low)
typical_price1 = cal1.average()
print(f"{item1.name}대표값:{typical_price1}")


cal2 = Calculator2(item2.close,item2.high,item2.low)
typical_price2 = cal2.average()
print(f"{item2.name}대표값:{typical_price2}")

인스턴스 맞추는 것에 주의!