예외처리

기본 형태

try:
	시도할코드
except:
	예외가 발생했을 경우 실행할 코드

해당 형태일 경우 try안에서 여러 오류가 발생할때 대응을 할 수 없다.

여러가지 예외를 구분할 경우

try:
	시도할 코드
except 에러클래스1:
	에러클래스1이 발생할 경우 시도할 코드
except 에러클래스2:
	에러클래스2가 발생할 경우 시도할 코드

에러사항을 변수로 사용할 경우

try:
	시도할 코드
except 에러클래스1 as 변수명:
	변수명을 사용한 코드

try ~ else

else문은 try이후 에러가 발생하지 않을 경우 실행 된다.

try:
	시도할 코드
except:
	예외 발생시 시도할 코드
else:
	예외가 발생하지 않을 경우 시도할 코드

try ~ finally

try:
	시도할 코드
except:
	예외 발생시 시도할 코드
finally:
	예외가 발생을 하던지 안하던지 무조건 마지막에 실행을  코드

Regular Expression

Match

처음에서 부터 일치하는 문자열을 찾으며 Match object를 리턴

첫번째 일치하는 패턴을 찾는다.

findall

일치하는 모든 패턴을 찾는다

split

패턴으로 나눈다 string의 split과 유사하다

sub

패턴 대체하기 string의 replace와 비슷하다

정규표현식의 패턴 문자

패턴 문자
\d 숫자
\D 비숫자
\w 문자
\W 비문자
\s 공백 문자
\S 비공백 문자
\b 단어 경계(\w \W의 경계)
\B 비단어 경계

정규표현식의 패턴 지정자(Pattern specifier)

패턴 의미
abc 리터럴abc
(expr) expr
expr1|exprt2 exprt1또는 expr2
. \n을 제외한 모든 문자
^ 소스 문자열의 시작
$ 소스 문자열의 끝
expr? 0또는 1회의 expr
expr* 0회 이상의 최대 expr
expr*? 0회 이상의 최대 expr
expr+ 1회 이상의 최대 expr
expr+? 1회 이상의 최소 expr
expr{m} m회의 expr
expr{m,n} m에서 n회의 최대 expr
expr{m,n}? m에서 n회의 최소 expr
[abc] a or b or c
[^abc] not(a or b or c)
expr1(?=expr2) 뒤에 expr2가 오면 expr1에 해당하는 부분
expr1(?!expr2) 뒤에 expr2r가 오지 않으면 expr1에 해당하는 부분
(?<=expr1)expr2 앞에 expr1이 오면 expr2에 해당하는 부분
(?<!expr1)expr2 앞에 expr1이 오지 않으면 expr2에 해당 하는 부분

제어문

if, elif, else(조건문)

기본형태

if 조건:
	조건이 참일 경우
else:
	조건이 참일 경우

중첩 조건문

if 조건1:
	조건1이 참일 경우
else:
	조건1이 거짓일 경우
	if 조건2:
		조건1은 거짓이나 조건2는 참일 경우
	else:
		조건1,2 모두 거짓일 경우

상위 같은 중첩 조건문의 경우 elif를 사용하려 줄여쓸 수 있음

if 조건1:
	조건1이 참일 경우
elif 조건2:
	조건1은 거짓이나 조건2가 참일 경우
else:
	조건1,2 모두 거짓일 경우

조건 표현식

참일경우 if 조건식 else 거짓일 경우

예시

is_holiday = True
print("Good") if is_holiday else print("Bad")

중첩 조건 표현식

조건1이 참일 경우 if 조건1 else 조건1은 거짓이나 조건2가 참일 경우 if 조건2 else 조건1,2가 모두 거짓일 경우

순환문

for문(조건에 따른 순회)

pluginslugins=({ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting) n버전**을 관리하기 위해 사용 함

방향키 관련 이슈가 일어날 수 있기 때문에 하기 명령어로 readline 및 xz를 설치 한다

brew install readline xz

Pyenv - Github

pyenv global [python version] 시스템에서 사용하는 python에 대한 버전을 pyenv에서 설치한 버전으로 변경


virtualenv

프로젝트별로 Python 개발환경 (python 패키지 설치 환경)을 관리하기 위해 사용 함


pyenv-virtualenv

pyenv 제작자가 pyenv 사용시 virtualenv 사용이 편리하도록 만듬

pyenv에서 python 버전 다운로드 이후

pyenv virtualenv [python version] [virtualenv name]

을 입력 하여 새로운 virtualenv를 만든다

그다음 작업하길 원하는 디렉토리에 들어가 pyenv local [virtualenv name]을 입력하여 해당 디렉토리에서 pyenv-virtualenv를 적용한다


용어

리터럴

변하지 않는 고정된 데이터

  1. 정수형
  2. 문자열
  3. 부동소수정

표현식

값을 의미하는 표현 또는 값을 반환하는 표현

sec=60

365*24*sec

구문

값의 의미를 지니지 않으며, 어떠한 목적을 수행하는 코드

>>> for char in '안녕하세요':
...   print(char)
...

변수

– 파이썬의 모든것이 객체(Object)
객체는 데이터의 형태를 결정해주며, 객체의 타입을 변경할 수 없다.

a = 35

상기와 같은 코드를 작성했을때 35라는 객체가 변경되지 않는다는 것이며 35의 메모리상의 위치를 가르키는 a는 언제든지 변할 수 있다

*변수**는 이름이며, 데이터를 갖는 것이 아니다.

변수의 타입 확인

type 함수 사용 type(var1)

변수의 이름 제한

예약어 사용불가,숫자로 시작 불가, 대문자로 시작은 가능하나 대문자로 쓰지 않음, 언더스코어(_) - 언더스코어는 특별한 처리방법을 따르므로 일반적으로 사용하지 않는다

변수의 입출력

input, print 함수 사용

input()
print()

숫자

– 연산자|설명|예|결과 —|—|—|—| + | 더하기 | 32 + 7 | 39 - | 빼기 | 82 - 2 | 80 * | 곱하기 | 3 * 7 | 21 / | 나누기 | 7 / 2 | 3.5 // | 정수나누기 | 7 // 2 | 3 % | 나머지 | 7 % 3 | 1 ** | 지수 | 2**10 | 1024

문자열

표현

Python3에서는 기본이 Unicode 사용

"문자열"
'문자열'

둘다 사용 가능

긴문자열 입력시 '''
기이이인
문자열
'''으로 묶는다

긴문자열은 ‘'’으로 묶는다

'문자열1' + '문자열2'

문자열 합산도 가능하다

이스케이핑

이스케이프 문자|설명 —|— \a | 비프음 발생 \t | 탭(tab) \n | 줄바꿈 \ | \(역슬래시) 입력 \’ | 작은따옴표(‘) 입력 \” | 큰따옴표(“) 입력

인덱스

>>> lux = "빛으로 강타해요!"
>>> lux[0]
>>> "빛"
>>> lux[1]
>>> "으"

문자로 이루어진 리스트이기 때문에 순서로 기록함

슬라이스

문자열[Start:End:Step]

Start에서 End까지 Step을 기준으로 움직이며 나타냄 -를 사용하여 역순으로 가능

길이

len()

문자열 나누기(split)

split()

String의 내장함수 split을 사용하여 비워놓을 경우 공백을 기준으로 필요한 조건이 있을경우 따옴표로 묶어 괄호() 안에 적어 넣는다.

문자열 합치기(join)

"넣을문자열".join(넣을 리스트)

join함수를 이용해 문자를 넣을 수 있음

공식문서

Text Sequence - String Methods

참조: https://github.com/Fastcampus-WPS-6th/Python