이산수학(sec 2.3 수의 표현)
- 진법별 표현
- 진법별 사칙연산
- 진법 간의 변환
Pre-school Day 2
Pycharm 설정하기
-
Pycharm 터미널에 가상환경 적용하기 file -> defualt setting -> preject interpreter -> add local선택 -> usr/local/var/pyenv/versions/ps7/bin/python3 선택 후 apply & OK
-
Paycharm 터미널 - zsh 변경
파이썬은 객체지향 언어
- 파이썬의 모든 것은 객체
- 어떤 데이터를 집어넣어도 알아서 설정해주므로 빅데이터에 적용하기 좋다
- 동적언어의 대표적 특징
Sequence 자료형
- 양의 정수로 색인(index)되게 순서대로 객체들이 나열
- 반복(순환)가능한 객체
- 모든 순서열에 적용되는 공통 연산이나 함수 존재
문자열
- ’ “ 구분 없음
- 여러줄은 ‘'’으로 묶음
문자열 포매팅
name = 'pando'
age = 17
print(f"Hello {name} {age}")
리스트
- 순서를 갖는 다양한 객체들의 시퀀스
- 대괄호로 만듬 []
- 변경 가능한 객체
튜플
- 고객정보와 같이 변경되면 안되는 자료들
- 패킹
data = 'pando', 30, 'seoul'
>>> data
>>> ('pando', 30, 'seoul')
- 언패킹
name, age, city = data
>>> name
>>> 'pando'
매핑 - 사전자료형
- 키와 값 형태로 짝지어짐
- 순서 보장 X
- 변경 가능
- 중괄호로 생성 {} 또는 dict()
셋
- 키만 남은 딕셔너리
- 값은 유일해야함
a = {0,0,0,0,0} >>> a = {0}
조건문과 반복문
조건문
animal = True small = True if animal: if small: print("고양이 입니다.") else: print("곰 입니다.") else: if small: print("장미입니다.") else: print("나무입니다.")
반복문
for [그 중 한 요소] in [반복가능한 객체]:
[실행 내용]
while [조건]:
[실행 내용]
- 반복가능한 객체 d = [1,2,3]
dir(d) 반복 가능한 객체 확인?
- iterable 한 객체는 __iter__함수를 갖고 있다
- d_iter = iter(d)
- iterable한 객체를 iterator로 만든다(iterable -> iterator)
- 소모성 객체
- print(type(d_iter)) –> ? next(d_iter)
- 다음 값을 반환(끝나면 StopIteration Error발생)
- 에러가 발생하면 반복문 종료
Comprehension
- 컴프리헨션은 하나 이상의 이터레이터로부터 파이썬의 자료구조를 만드는 콤팩트한 방법
- 비교적 간편한 구문으로 조건문과 반복문을 결합할 수 있도록 해줌
- 파이써닉한 방법
list1 = []
for i in range(10):
if i % 2 == 0:
list1.append(i)
list2 = [x for x in range(10) if x%2==0]
함수
- 여러 구문을 묶은 단위
- 재사용이 가능
- 매개변수(parameter), 인자(arguments), 반환(return)으로 구성
위치 인자 & 키워드 인자
- 쓰는 이유 : 데이터를 받아들일 때 편하고 확장성이 높다
- 위치 인자 : 튜플로 묶는다
def print_args(*args):
print('Positional argument tuple:', args)
print_args(1,2,3,4,5,'asd','ads','sdfg')
- 키워드 인자 : 딕셔너리로 묶는다
def print_kwargs(**kwargs):
print('Keyword arguments:', kwargs)
print_kwargs(animal='cat',fruit='apple')
예외처리
에러가 발생하면 프로그램이 종료가 되기 때문에 모든 잠재적인 에러를 방지하기 위해 적절한 예외 처리가 필요
short_list = [1,2,3]
while True:
value = input('Position [q to quit]? ')
if value == 'q':
break
try:
position = int(value)
print(short_list[position])
except IndexError:
print('인덱스 초과:', position)
except Exception as other:
print('잘못된 인덱스:', other)
모듈과 패키지
모듈
파이썬 파일
모듈 임포트
import [모듈]
import requests
다른 이름으로 모듈 임포트
import [모듈] as [다른 이름]
import login as user_login
필요한 모듈만 임포트
from [모듈] import [필요한 부분]
from bs4 import BeaurifulSoup
패키지
- 모듈을 모아놓은 것
- 파이썬 어플리케이션을 좀 더 확장 가능하게 만들기 위해 모듈을 패키지라는 파일 계층구조에 구성
- 디렉토리에 파일 이외에 필요한 파일이 있는데, __init__.py 파일 파이썬은 이 파일을 포함하는 디렉터리를 패키지로 간주
animal
|--__init__.py
|--cat.py
|--dog.py
from animal import cat
cat.move()
cat.eat()
cat.sleep()
클라스
- 객체 지향 프로그래밍 언어로 만드는 프로그램의 단위는 객체
- 객체는 클래스를 실체화한 것이며, instance라고 한다.
- 우리만의 객체를 만들 수 있음
[1]class [2] 클래스 이름 ([3]상속받을 클래스):
[4]멤버 변수
def [5]메서드 이름
class Person(Object):
name = 'Pando'
def hello():
print('안녕하세요')
- ’ . ‘ 으로 객체 속성 탐색
- 소괄호를 이용해 객체를 호출하여 클래스로 인스턴트 객체 생성
Person.name
one = Person()
데코레이터
- 기존 함수에 기능을 추가하고, 새로운 함수를 만드는 역할
- 어떤 동작을 함수의 전/후에 수행해야 하거나, 공통적으로 사용하는 코드를 쉽게 관리하기 위해 사용
#login_required(print_hello)
@login_required
def print_hello():
print('hello')
def login_required(func):
def wrapper():
return func
return wrapper
Comments