본문 바로가기

Python24

[ 객체 지향 프로그래밍 ] 2일차 ( __init__ ~ 클래스 메소드 ) [ 객체 지향 프로그래밍 ] class User: def settings(self, my_name, my_email, my_password) : self.name = my_name self.email = my_email self.password = my_password # User 인스턴스 생성 user1 = User() # 인스턴스의 초기값을 설정 user1.settings("2CHAECHAE", "2CHAECHAE@gamil.com", "1234!") user3 = User() User.settings(user3, "2MONMON", "2MONMON@gamil.com", "0000!") 함수를 작성해서 인스턴스 변수에 각 인스턴스에 맞는 값을 할당할 수 있다. user1의 경우는 인스턴스에서 메소드를.. 2022. 1. 20.
[ AI 코칭스터디 ] 1주차 학습 ( Conditionals and Loops ) [ Conditionals and Loops ] is / is not is와 is not은 변수의 자료형과 값, 메모리 주소까지 모두 일치하는지 비교한다. a = [1,2,3,4,5] b = a[:] # a와 b는 같은 리스트를 가리키는 것처럼 보이지만 서로 다른 메모리 주소를 가지고 있음 # 인덱스 값 각각을 복사해서 새로운 공간을 만든다. print( a is b ) # False c = a # a와 c는 같은 리스트를 가리키고 있음 print( a is c ) # True is는 메모리 주소를 기억해서 비교하는 연산자이고 파이썬에서 -5 ~ 256 까지는 같은 메모리 주소를 사용하기 때문에 이들 사이의 값들의 is 비교는 True 값이 나온다. 삼항 연산자 value = int(input("숫자 입.. 2022. 1. 19.
[ AI 코칭스터디 ] 1주차 학습 ( Function and Console I/O ) [ Function and Console I/O ] sort vs sorted sorted : 기존 리스트는 건드리지 않고 정렬된 새로운 리스트를 리턴한다. 파라미터 존재. ex) sorted( my_list, (reverse=True) ) sort() : 아무것도 리턴하지 않고 기존 리스트를 정렬한다. 파라미터가 존재하지 않음 list_ex = [5,4,3,2,1] # sorted 함수는 sorting이 된 함수를 복사한 리턴값을 가지고 있다. print(sorted(list_ex)) # sort 함수는 리스트 자체에 변화가 일어난다. 리턴값이 존재하지 않음. list_ex.sort() print(list_ex) input input은 string 타입만 받을 수 있다. * 타입이 다른 값들을 연속해서.. 2022. 1. 18.
[ AI 코칭스터디 ] 1주차 학습 ( Variables ) [ Variables ] Variables 프로그래밍에서 변수는 값을 저장하는 장소로 변수는 메모리 주소를 가지고 있고 변수에 들어가는 값은 메모리 주소에 할당됨 변수는 선언되는 순간 메모리 특정 영역의 물리적인 공간에 할당됨. 변수에는 값이 할당되고 해당 값은 메모리에 저장된다. [ 컴퓨터 구조 - 폰 노이만 아키텍쳐 ] 사용자가 컴퓨터에 값을 입력하거나 프로그램을 실행할 경우 그 정보를 먼저 메모리에 저장시키고 CPU가 순차적으로 그 정보를 해석하고 계산하여 사용자에게 결과값을 전달하는 구조 * CPU = 제어장치 + 산술논리장치 데이터 타입에 따라 메모리를 차지하는 공간의 크기가 달라진다 . * Dynamic Typing : 코드 실행 시점에 데이터의 Type을 결정하는 방법 형변환 a = 10 t.. 2022. 1. 17.
[ AI 코칭스터디 ] 1주차 학습 ( 파이썬 준비하기 ) [ 파이썬 기초 ] 컴퓨터 OS Operating System, 운영체제 → 우리의 프로그램이 동작할 수 있는 구동 환경 ex) Windows, Mac OS 어플리케이션은 운영체제에 의존적이다. 프로그램이 Windows 또는 Mac OS와 호환이 되지 않을 수 있음 ( 프로그램을 운영체제에 맞게 설치해야함. ) 파일 시스템 File System → OS에서 파일을 저장하는 트리구조 저장체계 파일 : 컴퓨터 등의 기기에서 의미있는 정보를 담는 논리적인 단위 파일의 기본체계 : 파일 & 디렉토리 디렉토리 ( directory ) : 파일과 다른 디렉토리 포함 가능 파일 ( file ) : 컴퓨터에서 정보를 저장하는 논리적인 단위, 파일은 파일명과 확장자로 식별됨. 실행, 쓰기, 읽기 등이 가능 파일 시스템은.. 2022. 1. 16.
[ 객체 지향 프로그래밍 ] 1일차 ( 객체지향 정의 ~ 인스턴스 ) [ 객체 지향 프로그래밍 ] 객체지향 프로그래밍의 정의 객체 : 속성과 행동으로 이루어진 존재 ex) SNS 유저 객체 속성 : 이메일주소, 아이디, 비밀번호, 닉네임 등 행동 : 팔로우, 좋아요 등 객체 지향 프로그래밍 : 프로그램을 여러개의 독립적인 객체들과 그 객체들의 상호작용을 작성하는 프로그래밍 접근법. → 프로그램을 객체들간의 상호작용으로 모델링 클래스와 인스턴스 # 클래스 생성하기 # * 클래스의 첫 글자는 항상 대문자 class User : pass # 클래스로 인스턴스 만들기 # * 3개 모두 같은 User 클래스의 인스턴스이지만 서로 다른 인스턴스이다. user1 = User() user2 = User() user3 = User() * 같은 클래스로 인스턴스를 만들어도 인스턴스의 이름이.. 2022. 1. 12.
[ Python_알고리즘 ] 동적 프로그래밍 # 피보나치 수열 def fib(n) : if n == 1 or n == 2 : return 1 start = fib(n-2) middle = fib(n-1) end = start + middle return end print(fib(15)) [ 동적 프로그래밍 ] 동적 프로그래밍은 한번 계산 된 결과를 재활용 하는 방식 * 재귀 : 부분 문제의 답을 이용해서 기존 문제의 답을 구하는 방식으로 함수 스스로를 다시 사용 즉, 똑같은 함수를 중첩해서 사용 * 분할 정복 : 부분 문제로 전체적인 큰 문제 해결하기 분할 정복은 부분 문제를 해결한다기 보다는 문제를 2개 이상으로 나누고 합치는 방법이라면 동적 프로그래밍은 큰 문제의 부분문제를 해결해서 큰 문제를 해결하는 방법이다. 동적 프로그래밍은 상향식 접근과.. 2021. 12. 22.
[ Python_알고리즘 ] 분할정복법 ② 퀵 정렬 [ 퀵 정렬 ] Pivot을 기준으로 Pivot 보다 작은 값들을 왼쪽으로, Pivot 보다 큰 값들은 오른쪽으로 정렬 Pivot을 기준으로 값들을 새롭게 배치 왼쪽에 있는 값들은 오른쪽에 있는 값들 보다 작기 때문에 크기 비교없이 각각 정렬해주면 전체 리스트가 정렬됨 def swap_elements(my_list, index1, index2): temp = my_list[index1] my_list[index1] = my_list[index2] my_list[index2] = temp return my_list def partition(my_list, start, end): index = start #모든 index를 체크하기 위한 start index count = start #Pivot 값보다 큰 .. 2021. 12. 21.
[ Python_알고리즘 ] 분할정복법 ① 합병 정렬 #1부터 n까지의 합 def n_sum(start, end): sum_value = 0 if start < end : for i in range( start, end+1 ) : sum_value += i return sum_value print(n_sum(1,100)) #분할 정복법 def n_sum(start, end): if start == end : return start mid = ( start + end ) // 2 return n_sum(start, mid) + n_sum(mid+1, end) [ 합병 정렬 ] 리스트를 왼쪽, 오른쪽 반반 나누어주고 각각의 리스트를 각각 정렬한 후 하나의 리스트로 합병 def merge(list1, list2): i,j = 0,0 final_list = lis.. 2021. 12. 20.