[python] 기초문법 뽀개기

Yungsang Hwang·2022년 4월 24일
0

Python

목록 보기
1/4

작성 규칙

  1. 🟠 작성 상태
    ✅ 작성한 날짜를 기록함으로써 리마인드
    ✅ 작성한 프로젝트를 기록함으로써 프로젝트를 찾아볼 수 있음
    ✅ 작성 상태를 기술함으로써 수정된 이력 버전과 완성여부를 확인
  2. 🖋 기능 설명
    ✅ 레퍼런스 링크
    ✅ 사용된 기술에 대해 스스로 설명
  3. 🔨 프로젝트 적용
    ✅ 기획내용 작성, 작성한 계기를 기술
    ✅ 프로젝트에 사용한 코드를 한 줄씩 리뷰하는 것으로 코드 전체 이해 증명
    ✅ 코드를 설계한 내용과 왜 이렇게 작성했는지
    ✅ 완성 코드를 코드펜으로 보여주기

🟠 작성 상태


🟠 작성 날짜 : 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)

profile
하루종일 몽상가

0개의 댓글