본문 바로가기
Boostcamp AI Tech/[week 1-5] LEVEL 1

[Week 1 - Day 1] python 1,2

by newnu 2021. 8. 2.
반응형

1. 강의 내용

2-1. Variables

 

변수 - 프로그램에서 사용하기 위한 특정한 값을 저장하는 공간

선언 되는 순간 메모리 특정영역에 물리적인 공간 할당

변수는 메모리 주소를 가지고 있고 변수에 들어가는 값은 메모리 주소에 할당됨

변수 이름 작명법

  • 알파벳, 숫자, 언더스코어 사용 가능
  • 의미 있는 단어로 표기하는 것이 좋음
  • 대소문자 구분
  • 특별한 의미가 있는 예약어 사용 X (for, if, else 등)

기본자료형 (primitive data types)

실수형, 정수형

문자형

데이터 형변환

  • float(), int()
  • 문자형 <-> 숫자형

시퀀스형 자료형

List - 인덱싱, 슬라이싱, concatenate, is_in , append, remove, index, 패킹, 언패킹

   - 다양한 data type 하나의 리스트에 들어감
   - 리스트 안에 리스트를 만들어 행렬 생성
   - 해당 리스트 변수에는 리스트 주소값이 저장됨
   - 복사 b= a[:] ( 2차원에서는 불가능- copy.deepcopy 사용)

 

2-2. Function and Console I/O

함수 - 어떤 일을 수행하는 코드의 덩어리

    - 코드를 논리적 단위로 분리
    - 캡슐화 : 인터페이스만 알면 타인의 코드 사용

 

parameter : 함수의 입력값 인터페이스

argument : 실제 parameter에 대입된 값

console I/O

input()

print()

  • %s,%d, %f, ...
  • print( "%datatype" %(variable))
  • format 함수
  • print("{datatype}".format(argument))
  • fstring
  • print(f"{argument}")

화씨 변환기

# fahrenfheit_ex.py
cel_value = float(input())
fah_value = (9/5)*(cel_value)+32
print(f"섭씨온도 : {cel_value:.2f}")
print(f"화씨온도 : {fah_value:.2f}")

 

2-3. Conditionals and Loops

 

x == y : 값 비교

x is y : 메모리 주소 비교 (-5 ~256까지는 True)

 

삼항 연산자 : True if value%2==0 else False

 

반복문 for문 - 반복 실행횟수가 정확할 때

for else - 반복조건이 만족하지 않을 경우 반복 종료 시 1회 수행

while문 - 반복 실행횟수가 정확하지 않을 때

 

break - 특정 조건에서 반복 종료

continue - 특정 조건에서 skip

 

debugging - 코드의 오류를 발견하여 수정하는 과정

- 문법적 오류 : 들여쓰기, 오탈자, 대문자, ..

- 논리적 오류 : 뜻대로 실행이 안되는 코드 - print 문으로 확인하기

 

2-4. String and advanced function concept

문자열의 각 문자는 개별 주소(offset)를 가짐

- 인덱싱, 슬라이싱 가능

+ : concatenate

title() : 첫글자만 대문자로

count() : 몇번 나오는지 세기

 

raw string = r" 안녕 \n 파이썬"

\n 쓴 그대로 출력 

raw string = "안녕 \n 파이썬"
안녕
파이썬

raw string = r"안녕 \n 파이썬"
안녕 \n 파이썬

 

함수 호출 방식

Call by Value : 함수에 인자를 넘길 떄 값만 넘김

Call by Reference : 함수에 인자를 넘길 떄 메모리 주소를 넘김

 

Call by Object Reference : 파이썬은 객체의 주소가 함수로 전달되는 방식

전달된 객체를 참조하여 변경 시 호출자에게 영향을 주나 새로운 객체를 만들 경우 호출자에게 영향을 주지 않음

 

def span(eggs):
	eggs.append(1)
   	eggs.append(5)
    eggs=[2,3]
    print(eggs) # [2,3]
    
ham = [0]
spam(ham)
print(ham) # [0,1,5]

 

swap 

def swap(x,y):
    temp = x
    x = y
    y = temp

# 리스트의 전역 변수 값을 직접 변경
def swap_offset(offset_x,offset_y):
    temp = ex[offset_x]
    ex[offset_x] = ex[offset_y]
    ex[offset_y] = temp

# 리스트 객체의 주소값을 받아 값을 변경
def swap_reference(list_ex,offset_x,offset_y):
    temp = list_ex[offset_x]
    list_ex[offset_x] = list_ex[offset_y]
    list_ex[offset_y] = temp

 

docstring

파이썬 함수에 대한 상세스펙을 사전에 작성 -> 함수 사용자의 이해도 up

세개의 따옴표로 docstring 영역 표시(함수명 아래)

 

PEP8 - 파이썬 코딩 컨벤션의 기준

잘 작성 되었는지 flake8 모듈로 체크

black 모듈 - 알아서 수정해줌

2. Peer Session

자기소개

그라운드 룰 정하기

 

반응형