A ship in harbor is safe, but that is not what ships are built for.

개발일지/AI 캠프

내일배움캠프 AI - 11일차 TIL, 2022.09.14

플리피나리 2022. 9. 15. 10:59
반응형

스파르타 코딩클럽 내일배움캠프 AI 웹개발자양성과정 3회차

2022.09.14. 11일차 - TIL

 

 

1. 파이썬 특강

  • try - exception 을 통한 에러처리
number = "num"

try:  # try 구문 안에서 에러 발생할 경우 except로 넘어감
	number = int(number)  # 문자열을 정수형 변환해 에러 발생
    
except:  # 에러가 발생했을 때 처리
	print(f"{number}은(는) 숫자가 아닙니다.")
    
    
#################################################################
number = input()

try:
	int(number)
	10 / number
    
except ValueError:  # int로 변환하는 과정에서 에러가 발생했을 때
	print(f"{number}은(는) 숫자가 아닙니다.")
    
except ZeroDivisionError:   # 0으로 나누면서 에러가 발생했을 때
	print("0으로는 나눌수 없습니다.")
    
except Exception as e:   # 0으로 나누면서 에러가 발생했을 때
	 print(f"예상하지 못한 에러가 발생했습니다. error : {e}")
  • stacktrace : 에러가 발생 시 에러 발생 위치를 찾아내기 위해 호출된 함수 목록을 보여주고, 개발자는 생성된 stacktrace를 따라가 에러 발생 위치를 추적
  • 축약식 : list, set, tuple, dict 자료형이 축약식을 지원
# [list에 담길 값 for 요소 in 리스트]
numbers = [x for x in range(5)]  # [0, 1, 2, 3, 4]

# 조건문은 축약식 뒷부분에 작성, 축약식이 true일 경우 list에 값이 담긴다
even_numbers = [x for x in range(10) if x % 2 == 0]  # [0, 2, 4, 6, 8]

people = [
	("lee", 32),
	("kim", 23),
	("park", 27),
	("hong", 29),
	("kang", 26)
]

average_age = sum([x[1] for x in people]) / len(people)
print(average_age)  #27.4

#  tuple, set 축약식도 사용 가능
people = [
    ("lee", 32, "man"),
    ("kim", 23, "man"),
    ("park", 27, "woman"),
    ("hong", 29, "man"),
    ("kang", 26, "woman")
]

people = {name: {"age": age, "gender": gender} for name, age, gender in people}
print(people)


# result print
"""
{
    'lee': {'age': 32,
             'gender': 'man'},
    'kim': {'age': 23,
             'gender': 'man'},
    'park': {'age': 27,
             'gender': 'woman'},
    'hong': {'age': 29,
             'gender': 'man'},
    'kang': {'age': 26,
             'gender': 'woman'}
 }
"""
  • lambda 함수 : 익명함수, map/filter/sort 함수와 함께 사용
  • map : 함수와 리스트를 인자로 받아 리스트의 요소들로 함수를 호출
string_numbers = ["1", "2", "3"]
integer_numbers = list(map(int, string_numbers))
print(integer_numbers) # [1, 2, 3]

# 위와 동일한 기능
string_numbers = ["1", "2", "3"]
integer_numbers = []

for i in string_numbers:
    integer_numbers.append(int(i))

print(integer_numbers) # [1, 2, 3]

# map이 아닌 list 이용
string_numbers = ["1", "2", "3"]
integer_numbers = [int(x) for x in string_numbers]
print(integer_numbers) # [1, 2, 3]

# map과 lambda의 활용
number = [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]

###########################################################
numbers = [1, 2, 3, 4, 5, 6, 7, 8]

even_numbers = [x for x in numbers if x%2 == 0]
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]


people = [
    ("lee", 32),
    ("kim", 23),
    ("park", 27),
    ("hong", 29),
    ("kang", 26)
]

# 나이 순 정렬
people.sort(key=lambda x: x[1])
print(people)

# result print
"""
[
    ("kim", 23),
    ("kang", 26),
    ("park", 27),
    ("hong", 29),
    ("lee", 32)
]
"""
반응형