파이썬 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' 출력
상속
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)
파이썬 숫자 게임
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의 조합
2) Back - End Developer: 서버, 응용 프로그램 및 데이터베이스로 구성. 백엔드 개발자는 이러한 구성요소들이 작동할 수 있게 하는 기술을 만들고 유지하는 일을 한다
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 파일로 저장된다.