티스토리 뷰
728x90
✅ f-string
- for s 가 scores 라면 아래를 출력해라.
- name 과 score를 딕셔너리에서 각각 가져와서 정의해준다. 그리고 프린트로 다음과 같이 출력한다.
- 아래가 같이 출력된다. f-string 은 더 편하게 변수를 문자에 넣을 수 있다. (str( )은 숫자를 문자로 변형시켜 주는 명령어이다.)
print(name+'의 점수는 '+str(score)+'점입니다.')
print(f'{name}의 점수는 {score}점입니다.')
✅ 예외처리 (try - except)
- person 의 'age' 가 20보다 크면 person 의 'name'을 프린트를 해라.
- ben 에 보면 'age'가 없어서 에러가 난 것을 볼 수 있다. 이 때 쓸수 있는 문이 try - except 문이다.
- try 문에서 나이가 20보다 클 때를 계속 돌릴때 except 에러가 나면 프린트로 에러입니다를 출력해라. 이때 f 문으로 출력해도 되고 print(person['name'], '에러입니다') 로 출력해도 나온다. person['name']을 출력하는 이유는 어디에서 에서가 났는지 확인하기 위해서 써준다.
- 실제 프로젝트 남용하는 것은 금물! 어디서 에러가 났는지 알 수 없어요 💀
people = [
{'name': 'bob', 'age': 20},
{'name': 'carry', 'age': 38},
{'name': 'john', 'age': 7},
{'name': 'smith', 'age': 17},
{'name': 'ben'},
{'name': 'bobby', 'age': 57},
{'name': 'red', 'age': 32},
{'name': 'queen', 'age': 25}
]
for person in people:
try:
if person['age'] > 20:
print(person['name'])
except:
name = person['name']
print(f'{name} - 에러입니다.')
print(person['name'], '에러입니다.')
✅ 파일 분리
- main_func.py 와 main_test.py 파일을 만들어준다.
- main_func.py 에 함수를 만들어준다.
def say_hi():
print("Hello")
def say_hi_to(name):
print(f'{name}님 안녕하세요')
- 그 다음에 main_test.py 에서 main_func.py 의 함수를 쓰고 싶으면 test 에 from main_func import * 를 쓰면 가져다 쓸 수 있다. ' * ' 은 모든 함수를 다 가져와서 쓴다는 의미이고 거기에 say_hi 를 쓰면 say_hi 함수만 쓴다는 의미로 say_hi_to 의 함수는 실행되지 않아서 에러가 난다.
# 뼈대가 되는 파일
from main_func import *
say_hi()
say_hi_to('영수')
✅ if 문 - 한줄로 바꾸어보자.
num = 3
if num % 2 == 0:
print("짝수")
else:
print('홀수')
- 기본으로 했을 때에는 프린트 문을 일단 써보자.
num = 3
# if num % 2 == 0:
# result = '짝수'
# else:
# result = '홀수'
result = ('짝수' if num % 2 == 0 else '홀수')
print(f'{num}은 {result}입니다')
- #에 들어가 있는 저 if 문을 result = ('짝수' if num % 2 == 0 else '홀수') 처럼 한 줄로 만들 수 있다.
✅ for 문 - 한줄로 바꾸어보자.
- 우리가 배운 for 문으로 리스트의 숫자를 2배하여 나타낸 리스트를 만들어냈다.
a_list = [1, 3, 2, 5, 1, 2]
# b_list = []
# for a in a_list:
# b_list.append(a*2)
b_list = [a*2 for a in a_list]
print(b_list)
- 위의 내용처럼 b_list = [a*2 for a in a_list] 로 한줄로 만들 수 있다.
✅ map, filter, lambda식
people = [
{'name': 'bob', 'age': 20},
{'name': 'carry', 'age': 38},
{'name': 'john', 'age': 7},
{'name': 'smith', 'age': 17},
{'name': 'ben', 'age': 27},
{'name': 'bobby', 'age': 57},
{'name': 'red', 'age': 32},
{'name': 'queen', 'age': 25}
]
def check_adult(person):
if person['age'] > 20:
return '성인'
else:
return '청소년'
result = map(check_adult, people)
print(list(result))
- map 이란 명령어로 리스트의 모든 원소를 조작한다.
- result = map(check_adult, people) 란 피플의 리스트에서 check_adult 를 가져오는데 그것을 맵으로 만든다.
- print(list(result)) 는 result 를 list 로 만들어준다.
def check_adult(person):
return '성인' if person['age'] > 20 else '청소년'
result = map(check_adult, people)
print(list(result))
- def 안에 있는 명령어를 한 줄로 줄여주면 위와 같다.
result = map(lambda x: ('성인' if x['age'] > 20 else '청소년'), people)
print(list(result))
- map 을 다시 한줄로 줄이면 위와 같다.
- result = map(lambda x: ('성인' if x['age'] > 20 else '청소년'), people) 는 해석하면 x 는 변수이고 lambda 는 변수를 넣어준다. 그 변수는 'age'가 20보다 크면 성인이로 아니면 청소년으로 말하는데 그 안에 넣는 변수는 people 에서 가지고 온다. 라고 해석할 수 있다.
people = [
{'name': 'bob', 'age': 20},
{'name': 'carry', 'age': 38},
{'name': 'john', 'age': 7},
{'name': 'smith', 'age': 17},
{'name': 'ben', 'age': 27},
{'name': 'bobby', 'age': 57},
{'name': 'red', 'age': 32},
{'name': 'queen', 'age': 25}
]
result = filter(lambda x: x['age'] > 20, people)
print(list(result))
- result = filter(lambda x: x['age'] > 20, people) 는 좀 더 직관적이다. filter 는 리스트의 모든 원소 중 특별한 것만 뽑는다.
- 해석하면 x라는 변수를 주고 그 변수는 'age'가 20보다 큰 리스트를 가져와서 people 에서 라고 해석하면 리스트를 가져온다.
반응형
'AI웹 개발자 과정 공부 (팀스파르타) > 파이썬 실무 AI' 카테고리의 다른 글
24.02.28_TIL (0) | 2024.02.28 |
---|---|
24.02.27_TIL (0) | 2024.02.27 |
24.02.22_TIL (파이썬 : 함수) (0) | 2024.02.22 |
24.02.21_TIL (파이썬 : 리스트, 딕셔너리) (0) | 2024.02.21 |
24.02.20_TIL (파이썬 : 변수, 문자열) (0) | 2024.02.20 |