Python 모르고 놓치고 있는 유용한 기능
- 목차
반응형
나는 몇 가지를 제외하고 매우 유용하게 사용하고 있다.
연쇄 함수 호출
list comprehension처럼 사용 가능
def foo(x:bool):
print(x)
def foo2(x:bool):
print(not x)
x = True
(foo if x else foo2)(x)
# True
x = False
(foo if x else foo2)(x)
# True
for - else 문
for문이 break를 타지 않고 끝나면 (전체 루프를 다 돌면) else문 실행
for i in range(5):
if i > 5:
break
else:
print('?')
# ?
for i in range(5):
if i < 5:
break
else:
print('?')
#
함수 주석 (1)
파라미터 `:`, return값 `->`
def foo(x:int, y:str) -> dict(str=int):
return {y:x}
정말 주석 역할만 할 뿐 `x`에 float, string을 넣어도 상관 없다.
함수 주석 (2)
docstring
def foo(x:int, y:str) -> {str:int}:
"""
Parameter
---------
x: int
y: str
Return
---------
dict(y=x)
"""
if not isinstance(x, int):
raise Exception('x must be integer')
if not isinstance(y, str):
raise Exception('y must be string')
return {y:x}
오류 내기
`raise Exception`과 `assert`
# 방법 1
if not isinstance(x, int):
raise Exception('x must be integer')
# 방법 2
assert isinstance(x, int), 'x must be integer'
방법 1은 Exception Traceback, 방법 2는 Assertion Error Traceback
둘 다 동일하게 `x`가 `int`형이 아니면 에러를 발생시킨다.
사용자 정의 오류
class MyOwnError(Exception):
def __init__(self, msg):
self.msg = msg
def __str__(self):
return self.msg
raise MyOwnError('?')
무한대
import math
import numpy
float('inf') == math.inf == np.inf # True
np.isinf(float('inf')) # True
if문에서 대입하기
if (a:=3) < 4:
print(a, 'is great')
# 3 is great
`:=` 연산자를 통해 변수에 바로 대입하면서 if문을 돌릴 수 있어 코드를 줄일 수 있다.
728x90
반응형
'파이썬 Python' 카테고리의 다른 글
python으로 제곱근(root) 계산하는 함수 구현하기 (0) | 2024.04.26 |
---|---|
wtf python 알아두면 좋은 내용 정리 (0) | 2024.01.31 |
객관식 문제 채점 프로그램 (python) (1) | 2021.03.23 |
파이썬 Tesseract를 이용한 OCR 프로그램 만들기 (2) | 2020.12.05 |
클립보드 번역기(Clipboard Translator) & 화면 / 게임 번역기 v2.081 (61) | 2020.06.30 |