TIL - 22.04.26 python 심화문법02

개발자 macan·2022년 4월 26일
0

개발 - 공부

목록 보기
8/28

파일 불러오기

from 다른 파일 import * = 해당 파일의 모든 함수 다 가져오기 특정 함수를 원하면 * 대신 특정 함수를 기입

if문 삼향 연산자

if문이나 for문을 짧게 축약하여 글을 정말 짧게 줄일 수 있다.
num = 3

result = ('짝수' if num % 2 == 0 else '홀수')

print(f'{num}은 {result}입니다!')
a_list = [1,3,2,5,1,2]

b_list = [a*2 for a in a_list]

print(b_list)

map, filter, lambda 식

map

``` 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) # map을 통해서 people을 하나씩 check_adult에
대입해서 돌린다
print(list(result))


<h3> lambda </h3>
굳이 함수까지 쓸 필요 없다!

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 = map(lambda person: ('성인' if person['age'] > 20 else '청소년'), people)

people 을 돌면서 person을 만들고 person을 :뒤의 값으로 return 해라

print(list(result))


<h3> filter </h3>

좀 더 직관적인 코드!

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) # 일반적으로 lambda 는 x로 하기로 함

print(list(result))



<h3> 클래스 사용법 </h3>

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('죽었다')

m = Monster()
m.damage(120)

m2 = Monster()
m2.damage(90)

m.status_check()
m2.status_check()

profile
개발자로 첫걸음

0개의 댓글