본문 바로가기

Python144

Udemy : Python 퀴즈 프로젝트와 OOP의 장점 Udemy : Python 퀴즈 프로젝트와 OOP의 장점 파이썬 클래스를 만드는 방법 클래스는 객체를 만들기 위한 블루프린트 (Blue Print)이다 class User: pass user_1 = User() # 클래스를 불러올 때에는 클래스 이름 뒤에 ()를 붙인다 class User: - class를 넣어주고, 뒤에 클래스의 이름을 쓰면된다 PascalCase - 클래스의 이름은 각 단어의 첫 번째 글자는 대문자로 써야 한다 (예) MyCar, UserInfo) pass - 클래스에 아무 정보를 넣고 싶지 않을 때 속성, 클래스 생성자, __init__() 함수 사용하기 class User: def __init__(self, user_id, username): # initialise attribut.. 2023. 1. 16.
Udemy : Python 객체 지향 프로그래밍 (OOP) Udemy : Python 객체 지향 프로그래밍 (OOP) 객체 지향 프로그래밍 (Object Oriented Programming) 현실 세계의 객체들 (Objects)을 프로그래밍으로 모델링 하는 것이다 객체들은 무언가를 가지고 있다 (attributes, 또는 속성) / 객체와 관련 있는 데이터 객체들은 무언가를 할 수 있다 (methods, 메소드) 즉 객체에는 data와 function이 존재한다 예) 음식점 음식점은 혼자서 모든 것을 하는 것보다, 요리사, 웨이터, 청소하는 사람을 고용하는 것이 편하다 요리사, 웨이터, 청소하는 사람들 모두 각각 속성과 메소드가 필요하다 웨이터의 속성 (Attributes) 접시를 가지고 있는지? : is_holding_plate = True 맡고 있는 테이블.. 2023. 1. 15.
[Python] 백준 13904 - 과제 🧑‍💻 [Python] 백준 13904 - 과제 Gold 5 - 정렬 과제 마감일과, 과제 점수가 주어진다 하루에 한 과제를 끝낼 수 있다 즉 과제 점수 기준으로 내림차순으로 해서, 최대한 많은 점수를 얻으려고 한다 문제풀이 과제 관련 정보를 입력 받는다 그리고 일수가 있는 리스트를 만든다 이 리스트는, 어느 날에 과제를 완료했는지 확인하는 리스트다 즉 False가 있고, True로 그 날 과제를 완료했다고 표시한다 그리고 과제들을 과제 점수가 높은 과제 기준으로 내림차순으로 정렬을 한다 for문을 사용하여 과제들을 순회한다 여기서 과제를 끝내야 하는 날이 제일 기준 index가 된다 만약에 과제를 끝내야 하는 날이 False일 경우, True로 바꿔주고 answer에 과제 점수를 누적시켜준다 과제를 끝.. 2023. 1. 15.
[Python] 백준 1374 - 강의실 🧑‍💻 [Python] 백준 1374 - 강의실 Gold 5 - 정렬, Heap 최대한 적은 수의 강의실을 사용하여, 모든 강의를 진행해야 한다 문제풀이 시간 초과 강의 시간들을 강의 시작 시간 기준으로 오름차순으로 정렬했다 그리고 강의가 끝나는 시간 기준으로 다시 오름차순으로 정렬을 했다 그리고 while문을 돌면서, 강의들을 뺐다 여기서 하고 싶었던 것은 강의실 당 들어가는 강의 시간들을 구하는 것이었다 그렇게 되면 한 강의실에 대한 스케줄이 나오고, 강의 시간이 아직도 남아있으면, 다시 while문을 반복해야 한다 반복하는 것을 강의 시간이 아예 없을 때까지 진행을 하는 것이다 Heap으로 풀기 위에는 한 강의실에 대한 스케줄을 강의 시간이 다 없어질 때까지 짜는 것이었다 Heap으로 풀게 되면 강.. 2023. 1. 14.
Udemy : Python 커피 머신 프로젝트 Udemy : Python 커피 머신 프로젝트 3개 종류의 커피들이 주어진다 필요한 재료와 금액이 주어진다 유저는 어떤 커피를 마실지, 그리고 동전 얼마를 넣을지 입력을 한다 입력에 따라, 재료가 부족하든지, 금액이 부족하든지, if문을 넣었다 여기서 제일 집중했던 것은 함수를 만드는 것이었다 is_sufficient : 안에 재료가 적당히 있는지 확인하는 함수 make_coffee: is_sufficient가 True를 반환하면, 커피를 만드는 함수이다 money_change: 금액을 계산하는 함수이다 함수를 사용해서, 2개 이상의 변수를 반환했다 튜블로 반환이 되어서, 인덱스를 통해, 내가 원하는 데이터를 활용했다 MENU = { "espresso": { "ingredients": { "water":.. 2023. 1. 14.
[Python] 백준 1931 - 회의실 배정 🧑‍💻 백준 1931 - 회의실 배정 Silver 1 - 정렬 회의실 한 개가 있다 입력값으로 회의 시작 시간과, 회의 끝나는 시간이 주어진다 시작 시간과, 끝나는 시간은 같을 수 있지만, 회의끼리 겹치면 안 된다 즉 시작하는 시간 순으로 먼저 정렬을 한 후, 또 한번 회의가 끝나는 순서로 정렬을 하면 된다 제일 중요한 것은 회의가 일찍 끝날수록, 더 많은 회의를 회의실에서 할 수 있다 문제 풀이 회의가 시작하는 시간 기준으로 정렬을 한다 그리고 회의가 끝나는 시간 기준으로 정렬을 한다 결과적으로 회의가 끝나는 시간 기준으로 정렬이 되어 있다 정렬된 회의 중 첫 회의는 무조건 진행을 한다 for문을 돌면서 전 회의의 끝나는 시간과 현재 회의의 시작 시간이 같거나 더 클 때에, meeting_now 를 갱.. 2023. 1. 13.
Udemy : Python 디버깅 Udemy : Python 디버깅 머리 속으로 문제 그려보기 def my_function(): for i in range(1, 20): if i == 20: print("You got it") my_function() 위에 코드는 작동은 하지만 "You got it"을 출력을 안 한다 왜냐하면 range(1, 20) 특성상 1이상 20미만의 수들을 구한다 즉 1부터 19까지만 구하는 것 따라서 "You got it"을 출력하기 위해서는 range(1, 21)로 바꿔야 한다 버그 재현하기 from random import randint dice_imgs = ["❶", "❷", "❸", "❹", "❺", "❻"] dice_num = randint(1, 6) print(dice_imgs[dice_num]) #.. 2023. 1. 13.
Python 유효 범위 (로컬 범위, 글로벌 범위) Udemy : Python 유효 범위 (로컬 범위, 글로벌 범위) Scope enemies = 1 def increase_enemies(): enemies = 2 print(f"enemies inside function: {enemies}") increase_enemies() print(f"enemies inside function: {enemies}") # output 1 : enemies inside function: 2 # output 2 : enemies inside function: 1 output 1 함수에서 가지고 온 enemies output 2 함수 밖에 있는 enemies=1을 가지고 왔다 Local Scope (로컬 범위) 로컬 범위는, 함수 안에 있는 것이다 변수를 함수 안에 넣게 .. 2023. 1. 13.
Udemy : Python 블랙잭 프로젝트 Udemy : Python 블랙잭 프로젝트 카드를 뽑아서, 카드의 숫자들을 더해서 21 이하로 맞추는 것이다 21 이상이고, 상대방이 21 이하이면, 무조건 지는 것이다 상대방과 비교해서, 둘 다 21 이하일 때, 21과 제일 가까운 숫자가 이기는 것이다 J, Q, K = 10 A = 1 또는 11 2~10은 각자 주어진 번호 첫 카드는 공개이다 공개를 했는데, 17 이하이면, 무조건 추가 카드를 받아야 한다 import random from replit import clear from art import logo def deal_card(): """returns random card from the deck""" cards = [11, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 1.. 2023. 1. 12.