
파이썬 기본기: set, f-string, if/for문 한줄 표현, map, lambda, filter, 매개변수, 클래스
a = [1, 2, 3, 4, 5]
b = [1, 2, 2, 6, 7]
a_set = set(a)
b_set = set(b)
print(a_set & b_set) # 교집합
print(a_set | b_set) # 합집합
print(a_set - b_set) # 차집합
ex) print(f'{name}은 {score}점입니다')
ex)
for i in list:
try:
print(i)
except:
print('에러')
from 파일명 import *
또는
from 파일명 import say_hi
- if 한줄 예시
num = 3 if num % 2 == 0: result = '짝수' else: result = '홀수' # result = ('짝수' if num % 2 == 0 else '홀수')
- for 한줄 예시
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]
map(적용시킬 함수, 적용할 요소들)
map(check_adult, people) # people을 돌면서 check_adult를 하나씩 넣어라
함수를 만드는 것 대신 lambda식 사용.
lambda식에 만든 함수를 사용해도 됨.map(lambda x: '성인' if x['age'] > 20 else '청소년', people) map(lambda x: check_adult(x), people) 결과 ex) ['청소년', '성인', '청소년', '청소년', '성인', '성인', '성인', '성인']
map과 아주 유사한데, True인 것들만 뽑기
filter(lambda x: x['age'] > 20, people) 결과 ex) [{'name': 'carry', 'age': 38}, {'name': 'ben', 'age': 27}]
args: 변수를 무한대로 받을 수 있음
def call_names(*args): for name in args: print(f'{name}야 밥먹어라~') call_names('철수','영수','희재')
kwargs: 키워드 인수를 여러개 받기
def get_kwargs(**kwargs): print(kwargs) get_kwargs(name='bob') get_kwargs(name='john', age='27')결과
{'name': 'bob'}
{'name': 'john', 'age': '27'}
ex)
class Monster(): hp = 100 # 클래스 속성으로 모든 인스턴스에 동일하게 적용됨. alive = True def damage(self, attack): self.hp = self.hp - attack if self.hp < 0: self.alive = False def status_check(self): if self.alive: print('살아있다') else: print('죽었다') m1 = Monster() # 인스턴스 생성 m1.damage(120) m2 = Monster() m2.damage(90) m1.status_check() m2.status_check()