[U] Week 1 Day 2

이동찬·2022년 9월 23일
0
post-thumbnail

1. 강의 복습 내용

(2-2) Function and Console I/O

  • 함수를 이용해 코드를 논리적인 단위로 분리
  • 캡슐화 : 인터페이스(함수의 input parameter)만 알면 타인의 코드 사용 가능
  • print formatting
    - %8.2f or :8.2f : 8칸을 비우고, 소수점 2자리까지 표현하는 float 값
    - f-string : Python 3.6 이후, PEP498에 근거한 formatting 기법

(2-3) Conditionals and Loops

  • x is y or x is not y : x와 y의 메모리 주소가 같은지 비교

Python에서는 "속도 개선"을 위해 자주 사용되는 값인 [-5 ~ 256]은 "정적 메모리"에 미리 담아놓음
→ 그 이외의 값은 선언될 때 메모리 공간 할당

a, b = 100, 100
c, d = 300, 300

print(a is b)  # True
print(c is d)  # False
  • 집합의 논리 키워드
    - and, or
    - all(), any()

(2-4) String and advanced function concept

  • 문자열(string) : 영문자 한 글자는 1byte의 메모리 공간 사용
    → 1byte = 8bit = 282^8 = 256(0 ~ 255) 까지 저장 가능
    → (ex) 64-bit 프로그램 : CPU가 한 번에 처리할 수 있는 데이터의 양이 64bit
  • sys.getsizeof() : 객체의 메모리 사이즈를 byte 단위로 반환
import sys

print(sys.getsizeof("a"), sys.getsizeof("ab"), sys.getsizeof("abc"))
>>> 50 51 52  # "a", "ab", "abc"의 각 메모리 사이즈 출력
  • a.capitalize() : 첫 문자를 대문자로 변환
    → 1개 단어에 적용할 때

  • a.title() : 제목 형태로 변환. 띄어쓰기 후 첫 글자만 대문자
    → 여러 개의 단어에 적용할 때

  • a.isdigit() : 문자열이 숫자인지 여부 반환

  • raw string : 특수 기호인 escape 글자(\)를 무시하고 그대로 출력

raw_string = r"안녕하세요. \n 부스트캠프"

print(raw_string)
>>> 안녕하세요. \n 부스트캠프
  • 함수 호출 방식 : 함수에서 parameter를 전달하는 방식
    1. 값에 의한 호출 (Call by Value)
    - 함수에 인자를 넘길 때 값만 넘김
    - 함수 내에 인자 값 변경 시, 호출자에 영향 X
    2. 참조에 의한 호출 (Call by Reference)
    - 함수에 인자를 넘길 때 메모리 주소를 넘김 (C 언어의 포인터 개념)
    - 함수 내에 인자 값 변경 시, 호출자에 영향 O
    3. 객체 참조에 의한 호출 (Call by Object Reference)
    - 파이썬의 함수 호출 방식
    - 객체의 주소가 함수로 전달됨
    - 전달된 객체를 참조하여 변경 시 호출자에 영향을 주지만, 새로운 객체를 만들 경우 호출자에 영향을 주지 않음

  • function type hints
    - 처음 함수를 사용하는 사용자가 interface를 알기 어렵다는 단점을 보완하기 위해,
    → python 3.5 버전 이후로는 PEP484에 기반하여 type hints 기능 제공

    • 장점
      • 사용자에게 인터페이스를 명확히 알려줄 수 있음
        - 함수의 문서화 시, parameter에 대한 정보를 명확히 알 수 있음
        - mypy, IDE, linter 등을 통해 코드의 발생 가능 오류를 사전에 확인
        - 시스템 전체적인 안정성 확보 가능
  • 함수 작성 가이드 라인
    1. 함수는 가능하면 짧게 작성하여 줄 수를 줄일 것
    → 최소 단위의 업무를 수행하도록 함수는 짧게, 여러 개 만들기
    2. 함수 이름 (V(동사) + O(목적어))
    → 함수의 역할, 의도가 명확히 드러날 것
    3. 하나의 함수에는 유사한 역할을 하는 코드만 포함
    4. 인자로 받은 값 자체를 바꾸지 말 것! (임시 변수 선언 or 복사)
    Call by Object Reference로 넘어오므로 원래 값이 변경될 수 있음!

2. 피어 세션

  • 데일리스크럼
    - 오늘의 모더레이터 선정
    - 팀 이름 브레인스토밍
    • 연락처, 노션 공유
    • 모각공
    • TMI 자기소개 정리하여 업로드
  • 수요일에 진행하는 "피어세션이 PEER씁니다"를 위한 팀 발표 PPT 준비

3. 회고

  • 오늘의 모더레이터 : 윤호님
  • 주차별 강의 학습량과 과제량 배분을 좀 더 체계적이고 정확하게 세워야겠다는 생각이 들었음
  • 아침에 샤워하면서 떠오른 팀 이름 아이디어가 내심 기발하다고 생각했는데, 투표를 통해 진짜 채택이 되니 팀에 도움이 된 것 같아 기뻤음
  • TMI 자기소개를 작성하다보니 나 자신에 대해 좀 더 돌아볼 수 있었고, 부스트캠프를 시작하는 지금 시점의 설레고 열정 넘치는 마음가짐을 나중에도 자주 꺼내볼 수 있게 잘 정리해둔 것 같아 뿌듯했음
profile
NLP ML Engineer, MLOps

0개의 댓글