Boostcamp AI Tech (Day 002)
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 변환 시 소수점 이하 버림(내림)
- 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)
- x: def function(x)
- 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: “”” “””
- 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