Peer Session Badge

1. Python variable & list

  • Variables
    • Von Neumann architecture: 사용자가 컴퓨터에 값 입력 / 프로그램 실행 시 정보를 먼저 메모리에 저장 후 cpu가 순차적으로 해석 / 계산 후 결과값 전달
    • variable: 프로그램에서 사용하기 위한 특정한 값을 저장하는 공간. 선언되는 순간 메모리 특정 영역에 물리적인 공간 할당

  • Basic operation
    • primitive data types: int, float, str, bool
    • dynamic typing: 코드 실행 시점에 data type 결정
    • 데이터형 변환 ex. a = float(a)
      • float -> int 변환 시 소수점 이하 버림(내림)

  • 시퀀스 자료형: list(array)
    • indexing
    • slicing ex. list[start:end:step]
    • operations: +, *, {value} in {list}, append, extend
    • list variable 에는 list address value가 저장됨
    • copy value
    • 1차원: list_copy = list[:]
    • 2차원: (import copy) list_copy = copy.deepcopy(list1)
    • unpacking: v1, v2, v3 = list

2. Function and Console I/O

  • Function
    • 개념, 기능
    • 반복적 수행을 1회 작성 후 호출
    • 코드를 논리적 단위로 분리
    • 캡슐화: 인터페이스만 알면 타인의 코드 사용 가능
    • parameter(1) vs argument(2)
      1. x: def function(x)
      2. 10: ret = function(10)

  • Console I/O
    • input(): str
    • number = int(input(“Enter a number: “))
    • print()
    • %
    • print(‘%10s and %10.1f’ % (‘one’, 2.235))
    • format()
    • print(‘{0} and {1:>10.1f}’.format(‘one’, 2.235))
    • fstring
    • print(f”My name is {my_name:*^20}.”)
    • print(f”I’m {my_age} years old.”)

3. Conditionals and loops

  • Condition
    • if, elif, else
    • comparison
    • 값 비교: a == b
    • 주소 비교: a is b
    • 삼항 연산자
    • is_even = True if value % 2 == 0 else False

  • Loop
    • for
    • for {looper} in {list}
    • for i in range(start, end, step)
    • while
  i = 0
  while i < 10:
      print(i)
      i += 1



4. String

  • Features
    • indexing
    • slicing
    • row string: r”\n” 입력 시 \n 이 그대로 출력됨

  • Function argument
    • Call by value: 값만 넘김
    • Call by reference: 메모리 주소를 넘김. (parameter 값 변경 시 호출자의 값도 변경됨)
  • Python의 경우
    • Call by object reference: “객체의 주소”가 함수로 전달됨.
    • 전달된 객체를 참조해 변경 시 호출자에게 영향 줌
    • 새로운 객체 생성 시 호출자에게 영향 주지 않음

  • etc
    • docstring: “”” “””

5. Assignment 해설 발표

  • 조교님 해설 발표 이후, 지원해서 내 코드를 발표함
def to_camel_case(underscore_str):
    words = list(underscore_str.strip('_').split('_'))

    # only one word in input
    if len(words) == 1:
        word = words[0]
        if len(word):   # in case word = ''
            word.replace(word[0], word[0].lower())
        return word

    # more than one words in input
    camelcase_str = ''
    for i, word in enumerate(words):
        word = word.lower()
        if i > 0:
            word = word.capitalize()
        camelcase_str += word
        
    return camelcase_str