[python 문법] Exception & 내장 함수

dyPenguin·2020년 10월 17일
0

Python

목록 보기
7/7
post-custom-banner

colab link: etc.ipynb

예외처리

try .. except 문


a = 0
b = 4
try:
  c = b / a
except : 
  print('infinity')
  
> infinity
a = 0
b = 4
c = [1,2,3]
try:
  #print(b / a)
  print(c[4])
except ZeroDivisionError :
  print('infinity')
except IndexError as e:  # e는 메세지 출력 변수.
  print(e)
  
> list index out of range

try .. except .. finally


finally절 은 try문 수행 도중 예외 발생 여부에 상관없이 항상 수행

f = open('/content/foo.txt', 'w')
try:
  c = 4 / 0
except:
  c = 'infinity'
finally:
  f.close()

오류 회피


  • pass 사용
try:
    f = open("나없는파일", 'r')
except FileNotFoundError:
    pass

강제로 오류 발생 시키기


  • raise
class Bird:
    def fly(self):
        raise NotImplementedError

내장 함수


dir

객체가 자체적으로 가지고 있는 변수나 함수를 보여 줌

print(dir(a))

> ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

enumerate

딕셔너리의 형태로 출력. for 문 과 함께 자주 사용.

a = enumerate(['body', 'foo', 'bar'])
print(a)
print(type(a))
for i, name in a:
  print(i, name)
  
> <enumerate object at 0x7fba0e1c9a68>
  <class 'enumerate'>
  0 body
  1 foo
  2 bar

casting 연산자(타입 강제 변환)

int, float, bool ..
hex: 16진수

a = int('123')
print(a+5)
print(int(a/5)) # 몫만 알고 싶을 경우
print(a // 5)   # 몫 연산자
str_hex = hex(127)
print(int(str_hex, 16))
print(bool(1)) 
print(bool(0))
print(bool(' '))
print(bool(''))

> 128
  24
  24
  127
  True
  False
  True
  False

isinstance

입력으로 받은 인스턴스가 그 클래스의 인스턴스인지를 판단하여 참이면 True, 거짓이면 False를 돌려줌

class Person:
  pass
a = Person()
print(isinstance(a, Person)) # a 가 Person의 인스턴스 인지 판단해주는 함수
b = [1,2,3]
print(isinstance(b, Person))
print(isinstance(b, list))

> True
  False
  True

list

반복 가능한 자료형 s를 입력받아 리스트로 만들어 돌려주는 함수

  • 얕은 복사
a = [1,2,3]   
b = a
b[0] = 4
print(a)

> [4, 2, 3]
  • 깊은 복사 1
a = [1,2,3]   
b = a[:]
b[0] = 4
print(a)
print(b)

> [1, 2, 3]
  [4, 2, 3]
  • 깊은 복사 2
a = [1,2,3]
b = list(a)
b[0] = 4
print(a)
print(b)

> [1, 2, 3]
  [4, 2, 3]

map

입력받은 자료형의 각 요소를 함수 f가 수행한 결과를 묶어서 돌려주는 함수

def celsius_to_faherenheit(x):
  return x * 1.8 + 32
celsius_data = [12, 23, 21, 5, -20]
print(list(map(celsius_to_faherenheit, celsius_data)))

> [53.6, 73.4, 69.80000000000001, 41.0, -4.0]

pow

x의 y 제곱한 결괏값을 돌려주는 함수

  • pow(x, y)
print(pow(2, 4))
print(2 ** 4)

> 16
  16

zip

print(list(zip([1,2,3], [4,5,6])))

> [(1, 4), (2, 5), (3, 6)]
for x, y in zip([1,2,3], [4,5,6]):
  print(x + y)
   
> 5
  7
  9
profile
멋진 개발자가 되고픈 펭귄입니다.
post-custom-banner

0개의 댓글