반응형
스파르타 코딩클럽 내일배움캠프 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)
]
"""
반응형
'개발일지 > AI 캠프' 카테고리의 다른 글
내일배움캠프 AI, 13일차 TIL - 2022.09.16 (0) | 2022.09.17 |
---|---|
내일배움캠프 AI - 12일차 TIL, 2022.09.15 (0) | 2022.09.16 |
내일배움캠프 AI - 10일차 TIL, 2022.09.13 (1) | 2022.09.13 |
내일배움캠프 AI - 2주차 WIL (0) | 2022.09.13 |
내일배움캠프 AI - 9일차 TIL, 2022.09.08 (0) | 2022.09.13 |