본문 바로가기

Skill Stacks132

Udemy : Python 객체 지향 프로그래밍 (OOP) Udemy : Python 객체 지향 프로그래밍 (OOP) 객체 지향 프로그래밍 (Object Oriented Programming) 현실 세계의 객체들 (Objects)을 프로그래밍으로 모델링 하는 것이다 객체들은 무언가를 가지고 있다 (attributes, 또는 속성) / 객체와 관련 있는 데이터 객체들은 무언가를 할 수 있다 (methods, 메소드) 즉 객체에는 data와 function이 존재한다 예) 음식점 음식점은 혼자서 모든 것을 하는 것보다, 요리사, 웨이터, 청소하는 사람을 고용하는 것이 편하다 요리사, 웨이터, 청소하는 사람들 모두 각각 속성과 메소드가 필요하다 웨이터의 속성 (Attributes) 접시를 가지고 있는지? : is_holding_plate = True 맡고 있는 테이블.. 2023. 1. 15.
Udemy : Python 커피 머신 프로젝트 Udemy : Python 커피 머신 프로젝트 3개 종류의 커피들이 주어진다 필요한 재료와 금액이 주어진다 유저는 어떤 커피를 마실지, 그리고 동전 얼마를 넣을지 입력을 한다 입력에 따라, 재료가 부족하든지, 금액이 부족하든지, if문을 넣었다 여기서 제일 집중했던 것은 함수를 만드는 것이었다 is_sufficient : 안에 재료가 적당히 있는지 확인하는 함수 make_coffee: is_sufficient가 True를 반환하면, 커피를 만드는 함수이다 money_change: 금액을 계산하는 함수이다 함수를 사용해서, 2개 이상의 변수를 반환했다 튜블로 반환이 되어서, 인덱스를 통해, 내가 원하는 데이터를 활용했다 MENU = { "espresso": { "ingredients": { "water":.. 2023. 1. 14.
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.
Udemy - Javascript - 재귀 문제풀이 Udemy - Javascript - 재귀 문제풀이 Power() 거듭제곱을 재귀로 만든다 function power(num1, num2) { if (num2 === 0) return 1; return num1 * power(num1, num2 - 1) } num2 가 0이면 1을 반환한다 예) 2 ^ 0 = 1 / 4 ^ 0 = 1 num2가 0이 될때까지 return num1 * power(num1, num2 - 1)를 call stack에 넣어준다 num2가 0이 되면 if (num2 === 0) return 1;을 통해 1을 반환한다 call stack에 넣어둔 만큼 num1을 power(num1, num2 - 1)과 곱하면 결과값이 나온다 Factorial() 팩토리얼을 계산 하는 것이다 주어진.. 2023. 1. 11.
Udemy : Python 출력과 함수 Udemy : Python 출력과 함수 Functions with Output def my_function() : result = 3 * 2 return result my_function() # result가 출력된다 output = my_function() # result가 output으로 저장된다 함수를 정의하고, 함수를 사용할 때에 출력하는 값이 나오도록 만들고 싶을 때에 return을 사용한다 실습 1 년도와 달을 입력 받는다 년도가 윤년인지 확인하고, 해당 연도의 달에 날 수를 출력한다 def is_leap(year): if year % 4 == 0: if year % 100 == 0: if year % 400 == 0: return True else: return False else: retu.. 2023. 1. 11.
Udemy - Javascript - 재귀 Udemy - Javascript - 재귀 재귀 (Recursion) 재귀는 자기 자신을 부르는 과정, (Javascript 같은 경우 함수) 이다 함수가 함수를 부르는 것이다 재귀 함수는 많은 곳에서 쓰인다 JSON.parse / JSON.stringify document.getElementById 그리고 DOM 등 많은 div가 있는데, 그것을 찾기 위해 재귀 함수를 사용할 수도 있다 더 복잡한 자료구조를 해결할 때 유용할 수 있다 iteration보다 더 깔끔할 대체자가 될 수 있다 스택 호출하기 Call Stack 스택 자료 구조다 (스택은 LIFO - Last In First Out) 함수가 적용될 때마다 Call Stack 위에 쌓이게 된다 (PUSH) 그리고 JavaScript가 return.. 2023. 1. 10.
Udemy : Python 딕셔너리 Udemy : Python 딕셔너리 딕셔너리 name = { "Alex" : 2; "Lisa" : 1; "Joon" : 1; } "Alex", "Lisa", "Joon" 은 key 2, 1, 1은 value들이다. 즉 key의 값들이다 딕셔너리는 key를 통해서 값을 가지고 올 수 있다 name["Alex"] 는 2로 출력된다 name = { "Alex" : 2, "Lisa" : 1, "Joon" : 1, } print(name["Alex"]) # 2 name["Yang"] = 5 print(name) # { # "Alex" : 2, # "Lisa" : 1, # "Joon" : 1, # "Yang" : 5, # } # Yang이 key로, 5가 Yang의 값으로 추가가 되었다 name["Joon"] = .. 2023. 1. 10.