[Python] 2강

2022. 1. 27. 15:50Naver BoostCamp AI Tech 3기

변수(Variable) : 변수는 값을 저장하는 장소이며, 변수는 실제로는 메모리 주소를 가지고 있고, 값을 저장해야 할 때는 그 메모리 주소에 값을 할당하는 것이다.

 

기본 자료형(Primitive Data Types)

 

함수(Function) : 반복적으로 수행할 코드의 부분을 정의해놓으면, 그 인터페이스만 간편하게 사용할 수 있다.

 

parameter vs argument : parameter는 함수의 입력 값 인터페이스를 의미하고, argument는 실제 parameter에 대입된 값을 의미한다.

 

Console I/O : Python에서는 주로 input()함수를 통하여 입력을 받을 수 있다. 여기서, input()을 통해 입력받은 값은 str 형태이므로, int나 float으로 바꾸려면 int() 및 float() 등을 씌워주면 된다.

 

Print formatting : print()문의 양식을 지정할 수 있는데, %를 이용하는 것과, format을 이용하는 것, 그리고 fstring을 이용하는 것이 있다. (fstring에 익숙해져야 한다.)

반복문 for문의 range : range(시작값, 종료값, 증강값)으로 이루어진다. 값이 1개만 들어오면 종료값인 것이며, 2개가 들어오면 시작값 및 종료값, 3개가 다 들어오면 시작값, 종료값, 증강값이다. 종료값은 자기 자신은 포함되지 않는다.

 

자주 발생하는 오류 모음

- 들여쓰기(Indentation Error)

- 오탈자

- 대소문자 구분 안 함

- 논리적 오류 -> 중간중간에 print문을 찍어 확인해 볼 것!

 

문자열(String) : 시퀀스 자료형, 영문자 한글자는 1byte

 

데이터 타입 별로 할당받는 크기가 다르다.

 

문자열 함수

여기서! split()과 split(' ')의 차이가 있다. split()은 공백 및 개행문자를 기준으로 잘라준다. 만약 공백이 중간에 여러 개가 있다면, 이들을 무시하고 자른다. 그러나, split(' ')은 중간에 공백이 여러 개라면, split한 결과에 공백이 섞여 나오게 된다.

 

특수 문자 리스트

 

raw string : str 앞에 r을 붙여주며, 이 경우 string안에 특수 문자 기호인 \를 그냥 문자로 인식하고 그대로 출력해준다.

변수의 범위(Scoping Rule) : 전역 변수는 함수 내에서 사용 가능하지만, 함수 내에서 같은 이름으로 변수 선언 시, 지역 변수로 접근하게 됨. 만약, 전역 변수를 사용하고 싶다면, global 키워드를 사용해야 함.

function type hints : 파이썬은 변수의 type을 프로그램 실행 시 알게 되는 dynamic typing이 기본이다. 그래서 Python 3.5버전 이후 PEP484에 의하여 type hints 기능을 제공한다. 장점은 다음과 같다.

- 사용자에게 인터페이스를 명확하게 알려준다.

- 함수의 문서화 시 parameter에 대한 정보를 명확히 알 수 있다.

- 코드 발생 오류를 사전에 체크할 수 있다.

- 시스템의 전체적인 안정성을 확보할 수 있다.

 

function docstring : 파이썬 함수에 대한 명세서를 작성함. 함수명 아래에 3개의 따옴표로 작성함.

함수 개발 가이드라인

- 하나의 함수에는 유사한 역할을 하는 코드만 포함

- 인자로 받은 값 자체를 바꾸는 것은 좋지 않음.(main에 있는 변수가 예상치 못하게 바뀔 수 있음!) 임시 변수를 선언하도록 하자.

- 함수로 만들기 좋은 것은, 1) 공통적으로 사용되는 코드 2) 복잡한 수식 3) 복잡한 조건

 

코딩 컨벤션 : 사람이 이해하기 쉽도록 만든 코딩 규칙. 팀플 시 매우 중요함. 일관성이 매우 중요함. 예시는 다음과 같다.

- 들여쓰기는 Space Bar 4번(Tab X)

- 한 줄은 최대 79자 까지

- 불필요한 공백은 피함

- =, - 연산자 등은 한 칸만 띄움

- 코드의 마지막에는 항상 한 줄 추가

- 소문자 l, 대문자 O, 대문자 I 금지

- 함수명은 소문자로 구성, 필요하면 언더바 이용(underscore case), 클래스명은 CamelCase

'Naver BoostCamp AI Tech 3기' 카테고리의 다른 글

Sequence to Sequence Learning with Neural Networks  (1) 2022.02.03
[Python] 4강  (0) 2022.01.30
[Python] 3강  (1) 2022.01.28
[Python] 1강  (0) 2022.01.27
좀 늦어버린 티스토리 블로그 오픈!  (2) 2022.01.27