\ 1. 다른 문자와 함께 사용되어 특수한 의미를 지님 - \d : 숫자 [0-9]와 동일 - \D : 숫자가 아닌 문자 [^0-9]와 동일 - \s : 공백 문자(띄어쓰기, 탭, 엔터 등) - \S : 공백이 아닌 문자 - \w : 알파벳 대소문자, 숫자 [0-9a-zA-Z]와 동일 - \W : non alpha-numeric 문자 [^0-9a-zA-Z]와 동일 2. 메타 캐릭터가 캐릭터 자체를 표현하도록 할 경우 사용 - \. , \\ import re re.search(r'\sand', 'apple and banana') re.search(r'\Sand', 'apple and banana') import re re.search(r'\.and', '.and') re.search(r'\.and', 'r..
정규표현식 - regular expression - 특정한 패턴과 일치하는 문자열을 '검색', '치환', '제거'하는 기능을 지원 - 정규표현식의 도움 없이 패턴을 찾는 작업 (Rule 기반)은 불완전하거나, 작업의 cost가 높음 - e.g) 이메일 형식 판별, 전화번호 형식 판별, 숫자로만 이루어진 문자열 등 raw string - 문자열 앞에 r이 붙으면 해당 문자열이 구성된 그대로 문자열로 반환 a = 'abcdef\n' # escape 문자열 print(a) b = r'abcdef\n' print(b) 기본 패턴 - a, X, 9 등등 문자 하나하나의 character들은 정확히 해당 문자와 일치 - e.g) 패턴 test는 test 문자열과 일치 - 대소문자의 경우 기본적으로 구별하나, 구별하..
special method - __로 시작, __로 끝나는 특수 함수 - 해당 메서드들을 구현하면 커스템 객체에 여러가지 파이썬 내장 함수나 연산자를 적용 가능 - 오버라이딩 가능한 함수 목록은 아래 링크에서 참조 https://docs.python.org/3/reference/datamodel.html https://docs.python.org/3/reference/datamodel.html#object.__add__ # Point # 2차원 좌표평면 각 점 (x,y) # 연산 # 두 점의 덧셈, 뺄셈 (1, 2) + (3, 4) = (4, 6) # 한 점과 숫자의 곱셈 (1, 2) * 3 = (3, 6) # 그 점의 길이 (0, 0) 부터의 거리 # x, y 값 가져오기 # 출력하기 class Poi..
객체 찾기 - 온라인 쇼핑몰에 회원 로그인을 하고 여러 판매자가 판매하고 있는 제품 중 하나를 골라 주문한다 - 아침에 회사 가는 길에 별다방 커피숍에 들러 아이스 카페라떼를 주문했다 - 성적 확인을 위해 학사 관리 시스템에 로그인하여 수강한 과목들의 성적을 확인했다 (학생, 과목, 교수, 강의실, 통계자료, 성적 산출 방법) 클래스는 객체의 청사진(blueprint) - 객체의 속성은 클래스의 멤버 변수(member variable)로 선언 - 학생 클래스 public class Student { int studentNumber; String studentName; int majorCode; String majorName; int grade; } - 주문 클래스 public class Order{ in..
객체 (object) - 의사나 행위가 미치는 대상 (사전적 의미) - 구체적, 추상적 데이터의 단위 (학생, 회원, 생산, 주문, 배송) 객체 지향 프로그래밍과 절차 지향 프로그래밍 - 아침에 일어나 학교를 가는 과정을 예를 들어 봅시다. - 절차 지향 프로그래밍 (C) 시간이나 사건의 흐름에 따른 프로그래밍 일어난다 -> 씻는다 -> 밥을 먹는다 -> 버스를 탄다 -> 요금을 지불한다 -> 학교에 도착 - 객체 지향 프로그래밍 (C++, C#, Python, JavaScript ..) 학생 밥 학생 버스 학생 학교 객체 지향 프로그래밍의 구현 방법 1. 객체 정의 후 2. 각 객체가 제공하는 기능들을 구현하고 3. 각 객체가 제공하는 기능들 간의 소통(메세지 전달)을 통하여 객체 간의 협력 구현
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 (상속) - 기존에 정의해둔 클래스의 기능을 그대로 물려받을 수 있다. - 기존 클래스에 기..
중앙값, 최빈값 중앙값 구하는 함수 : quantile(), median() 최반값 구하는 함수 : mode() (quantile은 사분면을 기반으로 하는데, median보다 더 정확한 계산을 할 때 쓰인다.) google colab에 csv 파일 올리는 방법 1. files.upload() 이용 from google.colab import files files.upload() csv_file='2019_03_Daegu_Average_Temperature.csv' import pandas as pd df=pd.read_csv(csv_file, encoding='cp949') # 한글 인코딩 해주어야 함 print(df.head()) # df = data frame 2. 구글 드라이브에 직접 접근하여 cs..
대푯값 구하기 데이터가 아주 많다면 이것을 대표하는 값으로 표현해볼 수 있다. 즉, 전체 데이터의 특징이나 경향을 대표할 수 있는 몇 가지 기본적인 통계적 수치를 알아볼 것이다. 보통 데이터의 양 끝단, 최대값, 최소값보다는 데이터의 중심이 그 데이터를 설명하는 데 더 유용할 것이다. 평균 한국의 남자 키를 누군가가 물었다면 대답할 때 약 2500만명의 남자 키를 모두 말하기는 어렵다. 이때 평균 키를 말하면 대략적인 남자 키를 말했다고 할 수 있을 것이다. data=[1, 2, 3, 4, 5] print(sum(data)) print(len(data)) 수학과 통계에서 산술 평균(算術平均, arithmetic mean)은 주어진 수의 합을 수의 개수로 나눈 값이다. data=[1, 2, 3, 4, 5]..
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,..