| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 채팅
- Class
- 2주차
- 백준
- Commpot
- channels
- re-id
- WHERE절
- sql
- Git
- github
- js
- 정보처리기사
- 프로젝트
- 개발일지
- WebSocket
- vscode
- WIL
- 1주차
- REDIS
- 가상환경
- 장고
- poetry
- 프로그래머스
- 정보처리기사실기
- 마스킹
- resnet50
- 파이썬
- 알고리즘
- 미니프로젝트
Archives
- Today
- Total
개발일기
#4 파이썬 연습 (예외처리, 파일 불러오기, 한 줄의 마법) 본문
Content
- 새로 알게된 점(복습!)
- 내맘대로 활용해보기
- 느낀 점
1. 예외처리 try-except
people = [
{'name': 'bob', 'age': 20},
{'name': 'carry', 'age': 38},
{'name': 'john', 'age': 7},
{'name': 'smith', 'age': 17},
{'name': 'ben', 'age': 27},
{'name': 'bobby'},
{'name': 'red', 'age': 32},
{'name': 'queen', 'age': 25}
]
#people의 bobby를 보면.. age 값이 없다.
#이런 경우, 바로 for 문이나 if문을 돌리면.. 오류메세지가 나온다. 이를 방지하기 위해 예외처리를 한다.
#if문의 else처럼 exception을 쓰면 정의되지 않은 모든 에러에 대해서 exception구문으로 빠져나간다.
for a in people:
try:
if a['age']>20:
print(a['name'])
except:
print(a['name'],'에러입니다.')
출력값:
carry
ben
bobby 에러입니다.
red
queen
근데.. 웬만하면 쓰지 말기..! 남용하면 어디서 오류인지 찾지를 못한다.
약간 심화내용..? 이런 게 있구나~
except ValueError: #int로 변환하는 과정에서 에러가 발생했을 때
except ZeroDivisionError: #0으로 나누면서 에러가 발생했을 때
except Exception as e: #위에서 정의하지 않은 에러가 발생했을 때 (권장하지 않음)
print(f"예상하지 못한 에러가 발생했습니다. error:{e}")
#except 문법도 if/elif처럼 연달아 쓸 수 있음
2. 파일 불러오기
이것만 알고 넘어가자. from 파일명 import 함수명..
자세한 건 모듈에서 살펴보자
3. 한 줄의 마법 : 코드 짧게 쓰기
#sol1
num = 3
if num % 2 == 0:
print('짝수')
else:
print('홀수')
#sol2
num = 3
if num % 2 == 0:
result = '짝수'
else:
result = '홀수'
print(f'{num}은 {result}입니다.')
#sol3
num = 3
result = ('짝수' if num%2==0 else '홀수')
print(f'{num}은 {result}입니다.')
if 문을 sol3처럼 짧게 쓸 수 있다..!
#sol1
a_list = [1,3,2,5,1,2]
b_list = []
for a in a_list:
b_list.append(a*2)
print(b_list)
#sol2
a_list = [1,3,2,5,1,2]
b_list = []
b_list = [a*2 for a in a_list]
print(b_list)
for 문을 sol2처럼 짧게 쓸 수 있다.
내 맘대로 활용하기
앞에서 만들었었던 you함수를 한 줄 마법을 이용해 짧게 바꿔보겠다..!
def you(name, mbti) :
a= name.strip()
b= (mbti.strip()).upper()
print(f'{a}의 mbti는 {b}이다.')
result = ('지금 신나게 수다 떨면서 놀고 싶다. 혼자 있기 싫다.' if b[:1] == 'E'
else '지금 집에 가고 싶다. 넷플릭스를 보며 혼자만의 시간을 갖고 싶다.')
print(f'{a}님은 {result}')
name = str(input("이름을 적어주세요."))
mbti = str(input("mbti를 적어주세요."))
you(name,mbti)
출력값:
이름을 적어주세요. Jisu
mbti를 적어주세요. ENFJ
Jisu의 mbti는 ENFJ이다.
Jisu님은 지금 신나게 수다 떨면서 놀고 싶다. 혼자 있기 싫다.
짜잔!
느낀 점
- 한 줄의 마법..!
- 가독성을 높인다. 내가 보기도 좋고 남이 보기도 좋다 :)
- 한 줄의 마법으로 긴 코드를 정리해서 더 깔끔하게 코드를 작성할 수 있을 것 같다.
- 유용한 마법이다. ㅎㅎ
'오늘의 공부일기 > 파이썬 공부일기' 카테고리의 다른 글
| #6 파이썬 심화 (가상환경, 코드 컨벤션, 변수 유효 범위) (0) | 2023.03.23 |
|---|---|
| #5 파이썬 연습 (map, filter, lamda, class) (0) | 2023.03.21 |
| #3 파이썬 연습 (튜플, 집합, f-string) (0) | 2023.03.21 |
| #2 파이썬 연습 (for문, if문, 함수) (0) | 2023.03.21 |
| #1. 파이썬 연습 (문자열, 리스트, 딕셔너리) (0) | 2023.03.20 |