본문 바로가기

Computer Science/[20-3,4] Python Basic24

[Python] csv 파일에서 특정 단어를 가진 열 찾아보기 import csv def csv_word(filename, word): f = open(filename, 'r') content = csv.reader(f) found = [] for line in content: if isinstance(word, str): if word in line: found.append(line) else: if len(set(word) & set(line)) == len(word): found.append(line) final = '' for item in found: final += str(item) + '\n' return final if len(found) != 0 else f"'{word}' doesn't exist" → 두번째 인자로 str을 받으면 그 단어를 포함.. 2020. 4. 22.
[Python] 복사본 변수의 변경이 원본에 영향을 미칠 때 class Number: def __init__(self, number): self.number = number def my_function(self): self.number[0] = 100 return self.number numlist = [1, 2, 3] num1 = Number(numlist).my_function() print(num1) # [100, 2, 3] print(numlist) # [100, 2, 3]# ??? 예시 클래스 Number을 보자. ① 생성자 __init__() 메소드로 받은 인자를 인스턴스 변수로 만들어주고 ② my_function() 메소드로 인덱스가 0인 자리를 100으로 바꾸어주는 클래스이다. 우리는 numlist를 만들고, 그 numlist를 인자로 넣은 클래스 .. 2020. 4. 3.
[Python] Operator Overloading (3) 클래스 객체 간의 연산과 역순 연산자 ① (예시) + 연산자에 대한 설명 ② 역순 연산자의 이해 ③ 순서가 있는 연산자의 역순 연산자를 쓸때 class Number: def __init__(self, number): self.number = number n1 = Number(1) n2 = Number(1) print(n1 + n2) # TypeError: unsupported operand type(s) for +: 'Number' and 'Number' print(n1 + 100) # TypeError: unsupported operand type(s) for +: 'Number' and 'int' 여기 아주 간단한 클래스 Number가 있다. 생성자 메소드만을 포함하고 있다. 파이썬에서 본인이 만든 클래스의 객체끼리 연산자를 사용할 수 .. 2020. 4. 2.
[Python] Operator Overloading (2) iterator 구현해보기 Operator Overloading 1편: https://jiwonkoh.tistory.com/48 [Python] Operator Overloading (1). == 연산자 재정의하기 ① Data Model (Object Model)이란? ② Dunder Method (Dunder Attributes)란? ▶ Dunder Method는 어디에 쓰이나? ③ Operator Overloading, 연산자 오버로딩이란? ▶ 비교연산자 ==를 재정의해보자 ① Da.. jiwonkoh.tistory.com ▶ (문제) 두 개의 클래스 객체의 알파벳이 같으면 비교연산자 ==가 True다! ▶ (추가문제) 클래스 객체를 iterable하게 만드려면? ▶ iterator와 iterables의 차이 ▶ (문제) 두 .. 2020. 4. 2.
[Python] Operator Overloading (1) == 연산자 재정의하기 ① Data Model (Object Model)이란? ② Dunder Method (Dunder Attributes)란? ▶ Dunder Method는 어디에 쓰이나? ③ Operator Overloading, 연산자 오버로딩이란? ▶ 비교연산자 ==를 재정의해보자 ① Data Model (Object Model)이란? 파이썬의 데이터 모델이란, 포괄적인 개념으로 파이썬에서 데이터를 처리하는 방식을 말한다. 넓게는 iterators, functions, class와 객체 연산들의 구성을 말한다. 파이썬은 객체 연산을 할 때 Dunder Method를 사용한다. ② Dunder Method (Dunder Attributes)란? 클래스를 정의할 때 제일 먼저 만드는 생성자 __init__()를 보면, 메.. 2020. 4. 1.
[Python] Optional Parameter에 None 주의해서 쓰기 파이썬 함수의 인자(Function Parameters)에는 Mandatory parameter와 Optional paramater가 있는데, Optional parameter은 기본값(default value)를 정해줘야한다. def my_func(a, b=100): return a + b → 이런 함수에서 optional parameter은 두번째에 온 b이다. b의 기본값은 100이다. ▶ 주의 optional parameter가 주어지지 않았을 경우에 b=None으로 설정하면, (= 기본값을 None으로 하면) 0인 정수가 왔을 때 문제가 생긴다. 예시) def my_func(a, b=None): if not b: return a + b → b의 값이 0일 때 a + b를 수행하지 않는다. 왜냐하.. 2020. 4. 1.
[Python] 클래스 상속 (Class Inheritance)란? ▶ GOAL: 이미 존재하는 클래스를 이용해서 어떻게 새로운 클래스를 만드는가? ▶ 특성 Polymorphism (다형성): 프로그래밍 언어의 각 요소들이 (method, operators) 다양한 자료형에 속할 수 있음을 나타낸다. ex) + 연산자는 두개의 str, int, list 등을 합치는데 이용한다. = 여러가지 자료형에 사용 가능 class Book: def howMany(self): return self.num # Inheritance class Store(Book): num = 5 books = Store() books.name = 'Walden' print(books.howMany()) # 5 → 클래스 Store은 클래스 Book의 자식 클래스이기 때문에 Book의 모든 메소드랑 At.. 2020. 4. 1.
[Python] isinstance() 함수와 .isdigit()의 차이 ① isinstance(object, class) isinstance 함수는 객체가 입력받은 클래스의 인스턴스인지 확인하는 함수이다. 단순히 type을 체크하는데 쓸 수도 있지만, 내가 만든 클래스의 인스턴스도 체크할 수 있다. Boolean data type (True or False)를 리턴한다. ② .isdigit() isdigit은 스트링 자료형에만 사용할 수 있는 스트링 메소드이다. 따라서 스트링안에 있는 내용이 숫자인지 확인할 때 쓴다. >>> word = '10' >>> print(isinstance(word, int)) >>> print(word.isdigit()) # False # True 2020. 3. 27.