이전 포스트에서 파이썬의 기본적인 문법을 정리하였다.
https://velog.io/@kcs4752/AI-3%EC%A3%BC%EC%B0%A8Python%EA%B3%BC-%EA%B8%B0%EB%B3%B8-%EB%AC%B8%EB%B2%95
(자료형 , 조건문 , 반복문)
#기본형
def hello():
print("안녕!")
print("또 만나요!")
hello() ###안녕!
###또 만나요!
#with parameter
def bus_rate(age):
if age > 65:
print("무료로 이용하세요")
elif age > 20:
print("성인입니다.")
else:
print("청소년입니다")
bus_rate(27) # 성인입니다.
#with return
def bus_fee(age):
if age > 65:
return 0
elif age > 20:
return 1200
else:
return 0
money = bus_fee(28)
print(money) #1200
리스트와 비슷하지만, 수정 및 추가 불가인 자료형
a = (1,2,3)
print(a[0])
a = [1,2,3,4,5,3,4,2,1,2,4,2,3,1,4,1,5,1]
a_set = set(a)
print(a_set)# [1,2,3,4,5]
name = 'Cheolsoon'
score = '92'
print(f'{name}은 {score}점입니다') #Cheolsoon은 92점입니다
for person in people:
try:
if person['age'] > 20: # people데이터중 일부의 age데이터가 누락되었다.
print (person['name'])
except:
name = person['name']
print(f'{name} - 에러입니다')
오류가 생길 시 예외처리를 하고 정상실행됩니다.
#main_test.py
from main_func import *
say_hi()
#main_func.py
def say_hi():
print('안녕!')
main_test.py에서 main_func.py의 say_hi() 함수를 불러들여 사용하였다.
#if문 if num%2 == 0 result = "짝수" else result = "홀수" #위의 4줄의 코드는 아래의 1줄로 바꿀 수 있다. result = "짝수" if num%2 == 0 else "홀수 #(결과1) if (조건) else (결과2)으로도 사용가능하다.
#for문 a_list = [1, 3, 2, 5, 1, 2] # b_list = [] for a in a_list: b_list.append(a*2) #위의 3줄의 코드는 아래의 1줄로 바꿀 수 있다. b_list = [a*2 for a in a_list] #(반복할 코드) for (element) in (반복할 elements)
def check_adult(person): if person['age'] > 20: return '성인' else: return '청소년' result = map(check_adult, people) print(list(result))
리스트나 딕셔너리에 대해 모든 항목에 대해 수행할 함수를 실행한 것을 반환한다.
물론 아래와 같이 삼항연산도 가능하다.
def check_adult(person): return '성인' if person['age'] > 20 else '청소년' result = map(check_adult, people) print(list(result))
result = map(lambda x: ('성인' if x['age'] > 20 else '청소년'), people)
print(list(result))
위의 for문을 함수를 따로 선언하지 않고 작성가능하다.
Javascript의 inline function과 비슷한 기능을 수행한다고 볼 수 있을 것 같다.
result = filter(lambda x: x['age'] > 20, people) print(list(result))
리스트나 딕셔너리에 대해 특정 조건을 만족하는 요소만 반환한다.
def cal(a, b):
return a + 2 * b
print(cal(3, 5))
print(cal(a=3, b=5))
#매개변수의 값을 지정해줄 수 있다.(순서에 상관X)
def cal2(a, b=3):
return a + 2 * b
print(cal2(4)) # 10
print(cal2(4, 2)) # 8
# 초기값을 지정해 줄 수 있다.
def call_names(*args):
for name in args:
print(f'{name}야 밥먹어라~')
call_names('철수','영수','희재')
def get_kwargs(**kwargs):
print(kwargs)
get_kwargs(name='bob')
get_kwargs(name='john', age='27')
쉽게 말해 인스턴스(객체를) 만들어내는 '틀'로 설계도, 도장과 비슷한다.
즉, 동일한 무언가를 계속해서 만들어낼 수 있는 형태이며 만들어낸 객체들은 모두 고유한 성격을 가진다. 단, 객체별로 갖는 기능은 모두 동일하다.
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()
다음 포스트에서 조금 더 심화?된 문법을 정리해보겠다.