데이터 분석을 위한 Python
✔️ 람다 표현식
✔️ 예외 처리
✔️ 람다 표현식
람다 표현식
람다 표현식(lambda expression)
익명함수(함수 이름이 없음)
간단한 함수를 작성하거나 다른 함수의 인수로 함수를 넣을 경우 사용
사용 후 메모리에서 삭제
lambda 매개변수: return할 값, 계산
(lambda x: x + 10)(5)
plus_ten = lambda x: x + 10plus_ten(5)
# 자료 1개를 입력받아 10을 더해 리턴하는 함수
# def 활용한 함수 생성
def plus_ten(x):
return x + 10
# 결과 확인
plus_ten(5)
# 람다 함수 사용
(lambda x: x + 10)(5)
# 람다 함수를 변수 할당 -> 잘 사용하지는 않음
plus_ten = lambda x: x + 10
plus_ten(5)
람다 표현식_홀짝 구분하는 함수 생성
# 숫자를 넣어서 홀짝 구분하는 람다 함수
(lambda x: '짝수' if x % 2 == 0 else '홀수')(11)
람다 표현식_1에서 10까지 수 중에서 3의 배수만 문자열로 변경하는 함수 생성
# def 활용한 함수 생성
# 1에서 10까지 수 중에서 3의 배수만 문자열로 변경하는 함수
def tostr(x):
result = []
for i in x:
if i % 3 == 0:
result.append(str(i))
else:
result.append(i)
return result
# 결과 확인
tostr(list(range(1,11)))
# 1에서 10까지 수 중에서 3의 배수만 문자열로 변경하는 람다 함수
# 리스트의 자료를 각각 고려해야 하기 때문에 map() 활용
# 1에서 10까지 수 중에서 3의 배수만 문자열로 변경하는 람다함수 적용
a = list(map((lambda x: str(x) if x % 3 == 0 else x), range(1,11)))
# 결과 확인
a
vk
람다 표현식_리스트 자료의 각 자료의 곱을 구하는 함수 생성
# 리스트 할당
a = [1,2,3,4,5]
b = [2,4,6,8,10]
c = [3,6,9,12,15]
# map() 함수 활용 람다 함수
result = list(map(lambda x, y, z: x*y*z, a,b,c))
# 결과 확인
print(result)
✔️ 예외 처리
예외 처리_ try-exception 구문 사용
예외처리(try exception)
예외 : 프로그램 실행 중에 발생할 수 있는 오류
3/0 -> 3을 0으로 나누는 것은 불가능(ZeroDivisionError 오류 발생)
try-exception 구문을 사용하면 예외상황에서도 프로그램이 중단되지 않게 할 수 있음
예외 처리 :try-exception 기본 문법 형식
try:
____# 예외가 발생할 위험이 있는 코드
except Exception as e:
____print(e) # 에러인지 출력
____# 예외가 발생했을 경우 실행할 코드
else:
____# 예외가 발생하지 않은 경우 실행할 코드
finally:
____# 예외가 발생하든지 안하든지 무조건 실행할 코드
예외 처리_숫자를 0으로 나눌때 에러 처리
# 숫자를 0으로 나눌때 에러 처리
num = int(input('숫자를 입력해 주세요: '))
try:
x = 10 / num
except Exception as e:
print(e)
print('숫자를 0으로는 나눗셈 할수 없습니다.')
else:
print(x)
for i in range(5): # 오류가 발생하면 반복문 종료
num = int(input('숫자를 입력해 주세요: '))
x = 10 / num
print(x)
# 에러가 발생한 경우 에러 코드와 print문 출력되면서 그대로 반복문 진행
for i in range(5):
num = int(input('숫자를 입력해 주세요: '))
try:
x = 10 / num
except Exception as e:
print(e)
print('숫자를 0으로는 나눗셈 할수 없습니다.')
else:
print(x)
예외 처리_학생 성적 할당(try-except 방법)
# 학생성적 딕셔너리 할당
student_scores = dict(alice=85, bob=92, mark=78)
# 성적을 조회할 학생 목록
names = ['alice', 'david','mark','bob']
# 반복문을 활용한 성적 조회
# names에 student_scores에 없는 david가 있어 오류 발생
for name in names:
# print(name)
# score = student_scores.get(name) # 내부적인 예외처리도 가능
try:
score = student_scores[name]
print(f"{name}의 점수는 {score}점 입니다.")
except Exception as e:
# print(e)
print(f"{name}의 점수는 없습니다.")
finally:
print(f"{name}의 점수 조회가 완료되었습니다.")
print()
예외 처리_학생 성적 할당(if else 방법)
# 학생성적 딕셔너리 할당
student_scores = dict(alice=85, bob=92, mark=78)
# 성적을 조회할 학생 목록
names = ['alice', 'david','mark','bob']
# 반복문을 활용한 성적 조회
for name in names:
score = student_scores[name] if name in student_scores else 'key가 없음'
print(f"{name}의 점수는 {score}점 입니다.")
print(f"{name}의 점수 조회가 완료되었습니다.")
print()
예외 처리_학생 성적 할당(.get() 방법)
# 반복문을 활용한 성적 조회
for name in names:
score = student_scores.get(name,'key가 없음')
if score != "key가 없음":
print(f"{name}의 점수는 {score}점 입니다.")
else:
print(f"{name}는 key가 없습니다.")
print(f"{name}의 점수 조회가 완료되었습니다.")
print()
이번 내용에서는 파이썬의 람다(lambda) 표현식과 예외 처리에 대해 알아보았습니다.
데이터 분석을 하기 위해서는 가장 꾸준히 공부해야 하는 언어는 파이썬(Python)이라고 생각합니다.
앞으로 꾸준히 파이썬(Python) 내용을 공부하고 정리할테니 파이썬 코딩에 도움이 되었으면 좋겠습니다.
데이터를 가져오고 저장되는 DB에 대한 이해와 SQL 활용 능력도 중요하므로
제가 작성한 데이터 분석을 위한 SQL 글에 들어가서 DB와 MySQL에 대해 공부하면 좋을 것 같습니다.
'SQL/데이터 분석을 위한 MySQL' 카테고리의 글 목록
데이터 분석 공부 열심히 하는 중😁
everyonelove.tistory.com
또한 데이터 크롤링을 위해서 웹개발 언어에 대한 이해도 필요하기 때문에
제가 작성한 데이터 분석을 위한 HTML / CSS / Javascript 글에 들어가서 웹 개발 언어에 대해 공부하면 좋을 것 같습니다.
'HTML & CSS & Javascript/데이터 분석을 위한 웹 개발 언어' 카테고리의 글 목록
데이터 분석 공부 열심히 하는 중😁
everyonelove.tistory.com
제 블로그에 방문하면 데이터 분석과 관련된 다양한 정보들이 준비되어 있으니
관심 있는 분들은 방문해서 좋은 정보 얻어가시길 바랍니다.
ECODATALIST
데이터 분석 공부 열심히 하는 중😁
everyonelove.tistory.com
'Python > 데이터 분석을 위한 Python' 카테고리의 다른 글
[Python] 파이썬_파이썬 생성자와 클래스의 상속, 클래스 및 인스턴스의 속성, 메서드 활용 (0) | 2025.03.31 |
---|---|
[Python] 파이썬_파이썬의 클래스와 클래스 생성 위한 인스턴스 및 메서드 활용 (1) | 2025.03.31 |
[Python]파이썬_파이썬의 위치인수, 가변위치인수, 키워드 인수, 가변 키워드 인수 활용 (0) | 2025.03.28 |
[Python] 파이썬_파이썬 함수 생성과 함수의 매개변수 및 return 값 (0) | 2025.03.27 |
[Python] 파이썬_ 파이썬 리스트 표현식, 파일 읽기/쓰기, JSON 파일을 통한 데이터프레임 변환 (0) | 2025.03.25 |