728x90
간략한 공통 문법
- Spyder IDE에서 일괄 들여쓰기 : Ctrl + ]
- 코딩 중 구획 나누기 : #%%
- 코딩 중 줄바꾸기 : \
- if문
- if 조건문 : 실행할 코드
- elif 조건문 : 실행할 코드-2
- else : 실행할 코드-3
- 산술연산
- 몫 : a // b
- 나머지 : a % b
- 제곱 : a * * b
- 논리 연산 : and / or / not을 사용가능하며, 한 줄에 연속사용시 not을 우선적으로 계산한 후, 앞에서부터 순차적으로 1:1로 and/or연산을 시행한다.
- 삼항 연산자 : C++의 '(a > b) ? a : b’에 대응하는 삼항 연산자는 ‘a if a>b else b’
- 반복문
- continue : 반복문의 이번 회차 실행을 종결하고, 다음 순번으로 넘어간다.
- break : 반복문 자체를 종결하고 다음 명령어로 넘어간다.
- ‘for 개체 in 개체들:’
- 개요 : VBA의 'for each 개체 in 개체들’에 해당. 단, '개체들’로 숫자를 사용시, 반드시 range(시작, 끝, 스텝)을 사용해야 함.
- 응용 : ‘개체’/'개체들’를 쌍으로 맞추기만 한다면, 여러개의 매개변수를 사용할 수 있다. 예를들면, for A, B in AB.items() 혹은 for A, B in list(zip(As, Bs)) 등…
- ‘while 조건문: / else’ : while에 해당되는 조건동안 무한반복하되, break에 걸리지 않고 끝나는 경우에는 else문을 실행한다.
- 반복문 부속 명령
Comprehension(반복문 간소화)
- 개요 : 압축된 문법으로 반복문을 만드는 방법 증 하나이다
- 문법
- 리스트(대괄호 사용) : [표현식 for 항목 in 순회 가능한 객체 if 조건]
- 셋(중괄호 사용) : {표현식 for 항목 in 순회 가능한 객체 if 조건}
- 딕셔너리(중갈호 사용) : {키 표현식 : 값 표현식 for 객체 in 순회 가능한 객체}
- 공통적용 추가내용 : 'for 항목 in 순회가능한 객체’부분을 여러개 사용하면, 다차원 for문으로 사용가능하다. 예를들면 구구단을 만들 때, for문 내에 for문을 만드는 대신, 아래와 같은 코드만으로 만으로 완성이 가능하다.
- [str(i)+“×”+str(j)+"="+str(i*j) for i in range(1,10) for j in range(1,10)]
- [str(i)+“×”+str(j)+"="+str(i*j) for i in range(1,10) for j in range(1,10)]
Packing / Unpacking
Packing : 리스트, 튜플 등 배열에 여러개의 값을 대입하는 것
- 기본 : a = (1, 2, 3)
- Zip()을 활용한 Packing의 특징
- zip을 통해서 만들어지는 결과물은 튜플로 구성된다
- zip()을 직접 변수에 할당하는 경우, 리스트나 튜플로 간주되지 않고 별도의 zip개체로 간주된다. 이에 따라 결과물 처리에 애로사항이 발생하므로, list(zip())의 형태로 사용해야 한다.
- zip()의 결과물은 튜플로 구성되므로, 수정하기가 어렵다. 리스트 개체로 결과물을 받기 위하여, [d,e,f = list(i) for i in list(zip(a, b))]등의 형태로 사용하는 것이 좋다.
- Packing의 예시
a = [1, 2, 3]
b = [‘st’, ‘nd’, ‘rd’]
ab = list(zip(a, b))
→ ab : [(1, ‘st’), (2, ‘nd’), (3, ‘rd’)]
Unpacking : 리스트, 튜플 내의 값을 하나 이상의 변수로 대입하는 것
- 리스트, 튜플의 Unpacking
a = [1, 2, 3]
b, c, d = a
→ b : 1, c : 2, d : 3
- List, dict 등 개체를 함수의 인수로 Unpacking하기
- List : 함수(*리스트개체)
- Dict : 함수(**딕셔너리개체)
- 활용 예시
uDate = datetime.date(*[int(i) for i in (‘2020-07-16’).split(’-’)])
→ uDate : datetime.date(2020, 7, 17)
※ [int … 중략 … split(’-’)] 구간은 '리스트 컴프리헨션’이라는 축약 문법임
- Unpacking을 활용한 변수간 값 상호변경
a = 100
b = 200
a, b = b, a
→ a : 200, b : 100
Decorator
- 개요 : 공통 사용 기능을 미리 구현해두고, 신규 함수 정의시 이를 상속할 수 있게 만든 함수
- 데코레이터의 구조
def deco_it(func)
def inner(*args, **kwargs)
추가 구현할 기능 1 # 함수 작동시간 검출 등 기능추가
추가 구현할 기능 2
result = func(*args, **kwargs) # 기존의 함수값은 그대로 반환
return result
return inner
- 데코레이터 사용 예시
@deco_it
def test(a, b):
return a + b
⇒ a+b를 반환하되, deco_it에서 구현한 추가기능도 같이 실행한다.
- 활용방안 : 각 함수별 계산 시간 측정, 각 함수별 명칭ㆍ매개변수 파악 등을 위한 상위함수 작성. 즉, 특정함수에 기능을 추가하여 새로운 함수 구현
- 기타 : 상속을 받아 기능을 구현한다는 점에서 인터페이스와 비슷해보일 수 있으나, 인터페이스가 반드시 구현해야 할 최소기능을 정의한다면, 데코레이터는 상속된 내용에 추가적인 내용을 덧붙인다는데 의의가 있다.
반응형
'컴퓨터 & 코딩 공부 > 파이썬' 카테고리의 다른 글
파이썬 - 표준 라이브러리(사용해본것만 일부 정리) (1) | 2024.04.19 |
---|---|
파이썬 기초(2) – 문자열, 리스트, 셋 및 클래스 관련 기능 (0) | 2024.04.19 |
파이썬 웹자동화 - 자바스크립트 활용 및 PyAutoGui 사용법 (1) | 2024.04.19 |
파이썬 웹자동화 - 셀레늄 및 관련 라이브러리 기본 사용법 (1) | 2024.04.19 |
파이썬 웹 자동화 - 셀레늄 활용을 위한 CSS 선택자 (0) | 2024.04.19 |