파이썬 기초 3

·2022년 9월 13일
0

TIL

목록 보기
6/46

파이썬 Class

클래스와 객체는 과자틀과 과자와 비슷하다.
클래스(class)는 똑같은 무엇인가를 계속해서 만들어 낼 수 있는 설계 도면이고,
객체(object)는 클래스로 만든 피조물을 뜻한다

예)

class Number:
    def __init__(self, func1, func2):
        self.func1 = func1
        self.func2 = func2
    def __str__(self):
        return f"{self.func1+self.func2}"

x = Number(10,10)
print(x)
str(x)  #결과 '20' 출력 
  • 클래스의 멤버 함수는 self라는 매개변수를 반드시 첫 번째 인자로 선언해야 한다
  • init 함수는 클래스의 인스턴스가 생성될 때 자동으로 호출되는 초기화 함수
  • del 특수 메소드는 객체가 소멸되기 직전에 수행되는 함수
  • str 문자열로 return
  • lt 객체를 비교 연산할 때 동작하는 특수 메소드

상속

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

class Man(Person):
    def __init__(self, name, age):
        super().__init__(name,age)
        self.gender = "MAN"
    def __str__(self):
        return f"<Class Person 이름: {self.name} 나이: {self.age} 성별: {self.gender}>"


class Woman(Person):
    def __init__(self, name, age):
        super().__init__(name, age)
        self.gender = "WOMAN"
    def __str__(self):
        return f"<Class Person 이름: {self.name} 나이: {self.age} 성별: {self.gender}>"


x = Man("홍길동", 30)
y = Woman("홍길순", 20)
print(x)
print(y)
  • Person은 부모 클래스 / Man, Woman은 자식 클래스
  • super()는 부모 클래스 Person을 의미하고 super().init() 는 부모 클래스의 생성자 함수를 호출한다
  • 자식 클래스 Man과 Woman에서 넘겨받은 name, age 변수값을 부모의 클래스로 전달하여 초기화 함수를 실행
  • 자식 클래스의 str 함수에서 self.age, self.name 을 출력하고 있는데 이 값은 자식 클래스에 존재하는 값이 아닌 부모 클래스에 존재하는 값

파이썬 숫자 게임

import random
import time
from datetime import datetime

def main():
    n = int(input("자릿수를 이용해 주세요: "))
    number_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    random.shuffle(number_list)
    random_numbers = number_list[0:n]
    print(random_numbers)

    # num = list(map(int, input("숫자를 입력해주세요: ").split()))
    # print(num)

    start_time = time.time()
    try_count = 0

    while True:
        input_number = input("값을 입력해주세요(exit 입력하면 종료): ")
        if input_number == "exit":
            exit()
        try_count += 1
        out_count = 0

        ball_count = 0
        strike_count = 0
        for i, v in enumerate(input_number):
            v = int(v)
            print(i, v)
            if v not in random_numbers:
                out_count += 1
            else:
                if random_numbers[i] == v:
                    strike_count += 1
                else:
                    ball_count += 1

        if strike_count == n:
            print("###############")
            print("정답입니다")
            print(f"소요 시간: {time.time() - start_time:.2f}")
            print(f"클리어 일자 : {datetime.now()}")
            print("###############")
            return
        print(f"{ball_count}{strike_count}스트라이크 {out_count}아웃 ")

main()

파이썬 공부 후 기본 IT 상식 및 웹에 대한 이해도를 높이기 위해 추가 공부를 했다

IT 상식

웹 개발자 직군
1) Front-End Developer: 웹사이트 중 사용자가 직접 상호작용 하게 되는 부분. 글꼴, 색상, 드롭 다운 메뉴 및 슬라이더 등 브라우저의 제어를 받는 HTML, CSS 및 JavaScript의 조합

  • skills and tools: HTML, CSS, JavaScript. Bootstrap, Foundation, Backbone, AngularJS, EmberJS와 같은 프레임워크. jQuery, LESS와 같은 라이브러리. Ajax(백그라운드에서 서버 데이터를 가져와 페이지를 동적으로 만드는 JavaScript를 활용하는 데 있어 Ajax가 보편적으로 사용되는 기술이기 때문)

2) Back - End Developer: 서버, 응용 프로그램 및 데이터베이스로 구성. 백엔드 개발자는 이러한 구성요소들이 작동할 수 있게 하는 기술을 만들고 유지하는 일을 한다

  • skills and tools: PHP, Ruby, Python, Java, .Net과 같은 서버 측 언어를 활용하여 응용 프로그램을 만든다. 또한 데이터를 검색, 저장 또는 변경하고 이를 프론트엔드 코드로 사용자에게 다시 제공하기 위해서는 MySQL, Oracle 및 SQL Server를 사용한다

3) Full Stack Developer: 프론트엔드와 백엔드 모두에서 교차적으로 작업할 수 있는 역할을 지칭

Request

플라스크

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run()

이 코드를 실행한 다음 웹 브라우저로 접속하면 화면에 'Hello World!'가 출력된다

  • set FLASK_DEBUG=true : 디버깅 모드 활성화

쿼리를 이용한 새 데이터 삽입 예)

insert into question (subject, content) values ('안녕하세요', '가입 인사드립니다 ^^');
insert into question (subject, content) values ('질문 있습니다', 'ORM이 궁금합니다');

ORM 이용한 새 데이터 삽입 예)

question1 = Question(subject=’안녕하세요’, content='가입 인사드립니다 ^^')
db.session.add(question1)
question2 = Question(subject=’질문 있습니다’, content='ORM이 궁금합니다')
db.session.add(question2)
  • 플라스크 ORM 라이브러리 사용하기
    pip install flask-migrate

  • 설정 파일 추가하기
    [파일명: projects/myproject/config.py]

import os

BASE_DIR = os.path.dirname(__file__)

SQLALCHEMY_DATABASE_URI = 'sqlite:///{}'.format(os.path.join(BASE_DIR, 'pybo.db'))
SQLALCHEMY_TRACK_MODIFICATIONS = False

SQLALCHEMY_DATABASE_URI는 데이터베이스 접속 주소이고 SQLALCHEMY_TRACK_MODIFICATIONS는 SQLAlchemy의 이벤트를 처리하는 옵션이다. 이 옵션은 파이보에 필요하지 않으므로 False로 비활성화하자. SQLALCHEMY_DATABASE_URI 설정에 의해 SQLite 데이터베이스가 사용되고 데이터베이스 파일은 프로젝트 홈 디렉터리 바로 밑에 pybo.db 파일로 저장된다.

0개의 댓글