method type - instance method : 객체로 호출 메서드는 객체 레벨로 호출되기 때문에, 해당 메서드를 호출한 객체에만 영향을 미침 - class method(static method) : 클래스로 호출 클래스 메서드의 경우 클래스 레벨로 호출되기 때문에, 클래스 멤버 변수만 변경 가능 class Math: @staticmethod def add(self, a, b): return a + b @staticmethod def multiply(self, a, b): return a * b m = Math() m.add(10, 20) m.multiply(10, 20) Class Inheritance (상속) - 기존에 정의해둔 클래스의 기능을 그대로 물려받을 수 있다. - 기존 클래스에 기..
self - 파이썬의 method는 항상 첫번째 인자로 self 전달 - self는 현재 해당 메서드가 호출되는 객체 자신을 가리킴 - C++/C#, JAVA의 this에 해당 - 역시, 이름이 self일 필요는 없으나, 위치는 항상 맨 처음의 parameter이며, 관례적으로 self로 사용 class Person: def __init__(self, name, age): self.name = name self.age = age def sleep(self): print(self.name, '은 잠을 잡니다.') a = Person('Aaron', 20) b = Person('Bob', 30) print(a) print(b) a.sleep() b.sleep() method 정의 - 멤버 함수라고도 하며, ..
__init__(self) - 생성자, 클래스 인스턴스가 생성될 때 호출됨 - self인자는 항상 첫번째에 오며 자기 자신을 가리킴 - 이름이 꼭 self일 필요는 없지만, 관례적으로 self로 사용 - 생성자에서는 해당 클래스가 다루는 데이터를 정의 : 이 데이터를 멤버 변수(member variable) 또는 속성(attribute)라고 함 class Person: def __init__(self): print(self, 'is generated') self.name = 'Kate' self.age = 10 p1 = Person() p2 = Person() print(p1.name, p1.age) p1.name = 'Aron' p1.age = 20 print(p1.name, p1.age) class ..
'인간'이라는 타입(class) 이름, 국적, 나이는 속성(attribute) 먹다, 자다, 일어나다는 행동(method) 홍길동, 임꺽정 등 실제로 존재하는 객체(object) List라는 타입(class) items 속성(attribute) append, extend 행동(method) [1, 2, 3] ['Hello', 'World'] 실제로 존재하는 객체(object) class란? - 실세계의 것을 모델링하여 속성(attribute)과 동작(method)를 갖는 데이터 타입 - python에서 string, int, list, dict.. 모두가 다 클래스로 존재 - 예를 들어 학생이라는 클래스를 만든다면, 학생을 나타내는 속성과 학생이 행하는 행동을 함께 정의할 수 있음 - 따라서, 다루고자 ..
모듈 임포트 - 그동안 사용했던 함수들처럼, 다양한 기능들이 미리 함수로 구현되어 모듈 형태로 제공 - 대표적으로 추후 과정에서 사용하게 될 아래의 모듈들이 존재 - requests - HTTP 요청/응답 모듈 - numpy - 수치해석 모듈 - pandas - 데이터 분석 모듈 import requests resp = requests.get('http://naver.com') resp.text import - import를 사용하여 해당 모듈 전체를 import import math print(math.pi) print(math.cos(100)) from import - 해당 모듈에서 특정한 타입만 import from math import pi from math import cos print(pi) ..
함수 연습문제 1. 주어진 숫자리스트의 평균을 구하는 함수를 출력하시오. 2. 해당 숫자가 소수인지 아닌지 판별하시오. 3. 2부터 해당 숫자 사이에 소수가 몇 개 있는지 출력하는 함수를 구하시오 # 입력 : 숫자 리스트 # 출력 : 숫자 리스트의 평균값 def mean(nums): _sum = 0 for i in nums: _sum += i return _sum / len(nums) print(mean([1, 2, 3])) print(mean([1, 2, 3, 4, 5])) print(mean([1, 2, 3, 4, 3.9, 8.7, 16.4, 20.6])) # sum 내장 함수로 대체 가능 def mean(nums): return sum(nums) / len(nums) print(mean([1, 2,..
Lambda 함수 - 단일문으로 표현되는 익명 함수 - 익명 함수란 이름이 없는 구현체만 존재하는 간단한 함수를 의미 - 코드 상에서 한 번만 사용되는 기능이 있을 때, 굳이 함수로 만들지 않고 1회성으로 만들어서 쓸 때 사용 square = lambda x:x**2 type(square) print(square(5)) def add(x, y): return x + y add2 = lambda x,y:x+y add2(10, 20) strings = ['bob', 'charles', 'alexander3', 'teddy'] # strings.sort(key=str_len) strings.sort(key=lambda s:len(s)) print(strings) filter, map, reduce - lamb..
variable length argument (가변 길이 인자) - 전달되는 파라미터의 개수가 고정적이지 않은 경우 사용 - print 함수, format 함수 등 - *args : 파라미터를 튜플의 형태로 전달 - **kwargs : 파라미터를 딕셔너리 형태로 전달 (네임드 파라미터) print() print(1) print(1, 2) print(1, 2, 3) print(1, 2, 3, 4) print(1, 2, 3, 4, 5) def test(*args): print(type(args)) for item in args: print(item) test(10, 20, 30) keyword parameter (키워드 파라미터) - **가 붙은 경우에는 키워드 파라미터로 인식 - 즉 함수 호출 시, 파라미..
함수 - 지금까지 무심코 코드에서 사용된 많은 함수들이 존재 - 함수란 우리가 알고 있는 개념처럼 주어진 입력(input)에 대해서 의도된 출력(output)을 전달하는 역할을 함 - range() : 정수를 입력으로 전달하면 [0, 정수]로 이루어진 리스트를 생성하는 역할 - sum() : 리스트, 튜플 등을 입력으로 전달하면 전체 아이템의 합을 출력으로 전달하는 역할 - len() : 리스트, 튜플 등을 입력으로 전달하면 아이템의 개수를 출력으로 전달하는 역할 - 위의 함수들은 모두 python 내부에 이미 구현되어 있음 (내장 함수, built-in function) # 내장 함수의 예 a = [1, 2, 3, 4] length = len(a) print(length) summation = sum(..
if & for 연습문제 1. 구구단을 2-9단까지 출력하시오 2. 1-100까지 정수 중 2의 배수 또는 11의 배수를 모두 출력하시오 3. a = [22, 1, 3, 4, 7, 98, 21, 55 ,87] 에서 최대값과 최소값을 찾으시오 (sorted, sort 사용 금지) 4. 리스트에서 평균을 구하시오 x = 2 while x
for문으로 구구단 출력하기 x = [2, 3, 4, 5, 6, 7, 8, 9] y = [1, 2, 3, 4, 5, 6, 7, 8, 9] for i in x: for j in y: print(i, 'x', j, '=', i*j) collection의 길이 - len() 내장함수로 계산 가능 - 내장함수란 파이썬 내부에 구현되어 있어서, import하지 않고도 사용 가능한 함수를 의미 - abs, len, type, range 등이 있음 (과정 진행하면서 필요할 때마다 다룰 예정) a = [1, 2, 3, 4, 5] len(a) range 함수 - 리스트를 쉽게 만들 수 있는 내장함수 - 주어진 값에 따라 다양한 결과를 반환 range(10) -> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] r..
dict의 아이템 출력하기 - dictionary의 경우 기본적으로 순회하게 되면 key값을 참조 - keys() 함수를 이용하여 key값만 순회 가능 - values()함수를 이용하여 value 값만 순회 가능 - items() 함수를 이용하여 tuple 형태로 key, value 순회 가능 a = { 'korea': 'seoul', 'japan': 'tokyo'} for key in a: print(key, a[key]) for value in a.values(): print(value) for key, value in a.items(): print(key, value) for에서 index 사용하기 - 기본적으로 for에 리스트를 순회하는 경우, 값만 추출 - 아래와 같은 코드로 인덱스와 값 모두 ..
무한루프 - while의 경우 종료가 되지 않도록 코드를 작성하면 블록에서 빠져나올 수 없음 while True: print('haha') break - loop를 중단할 때 사용 - 보통 조건문 안에서 수행되며, 조건을 만족하는 경우 loop를 탈출하기 위해 사용 - loop를 중단하는 경우, while 이후의 코드를 수행 a = [1, 10, 9, 24, 25,26] i = 0 while i 20: break print(a[i]) i += 1 print('haha') continue - break처럼 반복을 중단하여 빠져나오지 않고, 다시 while조건으로 점프함 - 특정한 경우에는 코드를 수행하지 않고 다음으로 건너 뛰기 위해 사용 a = 7 while a > 0..
loop (반복문) - 반복적인 작업을 가능하게 해주는 도구 - 특정 조건을 만족하는 경우 수행할 수 있음 (while) - 리스트, 문자열, 튜플 등 컬렉션 타입의 아이템을 하나씩 순회하면서 사용 가능 (for) - 코드 작업에서 가장 많이 사용하는 구문 중 하나 - 주의할 점 : while을 사용할 경우, 반복을 멈추게 하는 장치가 필요 (그렇지 않으면 셀이 무한 수행되며, jupyter notebook의 재부팅 필요) while 키워드 - while 뒤의 조건이 True일 경우, while 코드 블록을 계속 수행 - while 코드블록 (if와 마찬가지로 while문 아래의 들여쓰기로 작성된 부분을 의미 - 조건이 False가 되면 블록 수행을 멈추고 이후 코드 실행 a = [1, 10, 9, 24..
if, else - if가 아닌 경우, 나머지 조건을 표현하고 싶다면 바로 아래 else 블락 사용 - 이 경우, if 조건이 True인 경우, if 블락의 코드가 수행, 거짓인 경우 else 블락의 코드가 수행 - 주의할 점 : if와 else 사이에 다른 코드 삽입 불가 # 짝수인 경우에는 2로 나눈 값을 출력하고 # 홀수인 경우에는 1을 더한 값을 출력해라 a = 10 if a % 2 == 0: # 짝수인지 판별 print(a / 2) else: print(a + 1) if, elif, else - 조건이 여러 개인 경우, 다음 조건을 elif 블록에 명시 가능 - 이 경우, 각 조건을 확인한 후, True인 조건의 코드 블럭을 실행한 후, 전체 if, elif else 구문을 종료 - 조건문을 사..