작성 규칙
- 🟠 작성 상태
✅ 작성한 날짜를 기록함으로써 리마인드
✅ 작성한 프로젝트를 기록함으로써 프로젝트를 찾아볼 수 있음
✅ 작성 상태를 기술함으로써 수정된 이력 버전과 완성여부를 확인
- 🖋 기능 설명
✅ 레퍼런스 링크
✅ 사용된 기술에 대해 스스로 설명
- 🔨 프로젝트 적용
✅ 기획내용 작성, 작성한 계기를 기술
✅ 프로젝트에 사용한 코드를 한 줄씩 리뷰하는 것으로 코드 전체 이해 증명
✅ 코드를 설계한 내용과 왜 이렇게 작성했는지
✅ 완성 코드를 코드펜으로 보여주기
🟠 작성 상태
🟠 작성 날짜 : 0422, 2022
🟠 작성 상태 : 작성 중
🖋 기능 설명
🖋 레퍼런스 링크
🖋 기능에 대해 설명
▶ 튜플 자료형
a_tuple = ('사과', '감', '배')
a[1] = '수박'
print(a_tuple)
▶ 집합 자료형
- 중복을 허용하지 않는 자료형
- 문자열 등을 set()을 통해 중복 없는 문자 집합으로 구성할 수 있음
- 교집합, 차집합, 합집합 등을 구할 수 있음!
- 교집합 &
a = [1,2,3,4,5,1,2,3]
b = [5,6,7,8,9,5,6,7]
print(set(a), set(b))
c = set(a) & set(b)
d = set(a) - set(b)
e = set(a) | set(b)
print(c,d,e)
▶ f-string
- 변수와 문자를 한 번에 작성할 수 있음
- f'문자열 내용' 의 형태로 작성함
- 변수의 경우 f'{변수}문자열' 와 같은 형태로 넣어줌
scores = [
{'name':'영수','score':70},
{'name':'영희','score':65},
{'name':'기찬','score':75},
{'name':'희수','score':23},
{'name':'서경','score':99},
{'name':'미주','score':100},
{'name':'병태','score':32}
]
for s in scores:
name = s['name']
score = s['score']
# print(name+' 의 점수는 '+str(score)+' 점 입니다')
print(f'{name}(이)의 점수는 {str(score)}점 입니다!!!')
▶ try-except
- 코드에서 에러가 발생할 경우를 상정하고 작성
- try, except 마다 각각 코드 작성
try:
if s['age'] < 20:
print(s['name'])
except:
print(s['name']+': Error')
▶ 파이썬 파일 임포트
- 분리해 작성한 파이썬 파일을 메인으로 실행할 파일에 넣고 싶을 때 사용
- 라이브러리 임포트와 형식이 비슷하다
- from (파일 이름) import (내용)
def say_hi():
print('안녕')
def say_hi_to(name):
print(f'{name}님 안녕하세요!')
from side_func import *
say_hi_to('철수')
▶ 삼항연산자
num = 3
# 미적용
if num % 2 == 0:
result = '짝수'
else:
result = '홀수'
# 삼항연산자
result = ('짝수' if num%2==0 else '홀수')
print(f'{num}은 {result}입니다')
a_list = [1,3,5,7,9]
b_list =[a*2 for a in a_list]
print(b_list)
▶ map
- 반복문이 선언되지 않은 리스트데이터를 인자로 받아 반복문처럼 리스트 내부를 돌면서 값을 반환함
- 리스트로 묶어주어야 프린트 할 수 있음
def is_adult(person):
return ('성인' if person['age']< 20 else '미성년')
result = map(is_adult, people)
print(list(result))
▶ lambda
- 함수를 def로 선언하지 않고 임시로 작성할 수 있게하는 함수
- 위의 map, 삼항연산자와 혼용하여 반복문, 함수 선언 없이 한 줄로 작성 가능
result = map(lambda person: ('성인' if person['age']< 20 else '미성년'), people)
▶ filter
- map과 유사한 방식으로, 필터 조건이 참인 값만 돌려줌
result = filter(lambda person: person['age']>20, people)
▶ class
- 게임예시: 몬스터의 HP를 프로그램으로 관리할 때, 전부 일괄적으로 보여줘야 할까, 몬스터 마다 HP를 달아줘야 할까?
- 100, 1000개의 데이터를 관리한다면 하나씩 붙여주는 것이 직관적이다. 이를 객체 지향이라고 함
- 클래스는 효과적으로 객체 지향 코딩을 할 수 있게 해주는 것
- 클래스 밖에서 사용되는 변수를 인스턴스라고 부름
class Monster():
hp = 100
alive = True
def damage(self, attack):
self.hp = self.hp - attack
if self.hp == 0:
self.alive = False
def status(self):
if self.alive:
print('살아있음')
else:
print('죽었음')
m1 = Monster()
m1.damage(150)
m1.status()
🔨 프로젝트 적용
🔨 프로젝트 기획, 작성 계기
🔨 코드 리뷰
👁🗨 ver.1.0
🔨 완성 코드(CodePen)