TIL(22.09.14) - Python try / exception, stacktrace, 축약식, lambda / map / filter / sort

이지영·2022년 9월 14일
0

TIL/WIL

목록 보기
13/110

내일배움캠프 AI

오늘 한 일

파이썬 문법 실시간 강의
파이썬 과제 git
알고리즘 실습

내일 할 일

파이썬 문법 실시간 강의
파이썬 과제
알고리즘 실습

강의 정리하기

파이썬 심화
1) try / exception을 활용한 에러 처리

number = input()
try:
    int(number)
    10 / number
except ValueError: # int로 변환하는 과정에서 에러가 발생했을 떄
    print(f"{number}은(는) 숫자가 아닙니다.") 
except ZeroDivisionError: # 0으로 나누면서 에러가 발생했을 때
    print("0으로는 나눌수 없습니다.")
except Exception as e: # 위에서 정의하지 않은 에러가 발생했을 때(권장하지 않음)
    print(f"예상하지 못한 에러가 발생했습니다. error : {e}")

2) stacktrace : 에러가 발생했을때 에러 코드를 더 직관적으로 볼 수 있게 해준다.

3) 축약식(Comprehension)

a = [x*2 for x in range(5)]
print(a) 
출력
[0, 2, 4, 6, 8]

4) lambda / map / filter / sort 활용

  • lambda : 익명 함수(anonymous function)라고도 하며, lambda 함수는 주로 map / filter / sort 함수와 함께 사용된다.
  • map
    numbers = [1, 2, 3, 4]
    double_numbers = list(map(lambda x: x*2, numbers))
    print(double_numbers) # [2, 4, 6, 8]
  • filter : map과 유사한 구조를 가지고 있으며, 조건이 참인 경우 저장
    numbers = [1, 2, 3, 4, 5, 6, 7, 8]
    even_numbers = list(filter(lambda x: x%2 == 0, numbers))
    print(even_numbers) # [2, 4, 6, 8]
  • sort : list 정렬
numbers = [5, 3, 2, 4, 6, 1]
numbers.sort()
print(numbers) # [1, 2, 3, 4, 5, 6]
#sort와 lambda 함수를 같이 사용하면 복잡한 구조의 list도 정렬할 수 있습니다.
people = [
    ("lee", 32),
    ("kim", 23),
    ("park", 27),
    ("hong", 29),
    ("kang", 26)
]
#나이 순으로 정렬하기
people.sort(key=lambda x: x[1])
print(people)
#출력
[
    ("kim", 23),
    ("kang", 26),
    ("park", 27),
    ("hong", 29),
    ("lee", 32)
]

-> sort조건이 두개일때

people = [
    ("lee", 29),
    ("lee", 30),
    ("lee", 32),
    ("kim", 23),
    ("kim", 27),
    ("park", 27),
    ("hong", 29),
    ("kang", 26)
]
#sort조건이 두개일때 튜플사용
people.sort(key=lambda x: (x[0],x[1]))
print(people)
#출력 1번조건: x[0] 2번조건: x[1]
[
	('hong', 29), 
    ('kang', 26), 
    ('kim', 23), 
    ('kim', 27), 
    ('lee', 29), 
    ('lee', 30), 
    ('lee', 32), 
    ('park', 27)
]

알고리즘 실습

  • 백준 단계별 문자열

느낀점

파이썬 강의도 내일이면 끝이나는데 더 많이 사용해봐야겠다. 알고리즘 문제도 하루에 한문제씩이라도 풀면서 감 잃지않기!

profile
🐶🦶📏

0개의 댓글