Python 2 - 기초중에 기초
2-1 Variables
Variable
:가장 기초적인 프로그래밍 문법 개념
변수는 어디에 저장될까?
변수는 메모리 주소를 가지고 있고
변수에 들어가는 값은 메모리 주소에 할당됨
컴퓨터의 구조 - 폰노이만 아키텍쳐
a = 8 의 의미 : a라는 이름을 가진 메모리 주소에 8을 저장하라
변수의 작명 : 알파벳, 숫자, 언더바(_) 로 작명 / 의미있는 단어로 표기
Basic Operation(간단한 연산)
자료형 : int, float, str, bool
자료형에 따라 메모리 크기가 달라짐
Dynamic Typing: 코드 실행시점에 데이터의 type를 결정하는 방법
ㄴ 따로 type 결정안해줘도 됨
ㄴ 파이썬에서 가능한 방법.
ㄴ 사용자 친화적이긴 하지만 연산은 조금 느릴 수 있다.
List & Array
list 에 있는 값들은 주소를 가짐
리스트 추가 삭제
append, extend, remove, del
python list 의 특징
다양한 data type를 하나의 list에 넣을 수 있음
리스트 복사
그냥 b = a 하면
같은 주소를 지정하게 되어 a의 값들을 바꾸면 b도 같이 바뀌게 된다.
- 1차원
b= a[:]
를 하면 같은 주소를 지정하지 않고도 리스트를 복사할 수 있음 (1차원에서만 가능)
- 2차원
import copy
b = copy.deepcopy(a)
* 컴퓨터의 반올림 오차
단순한 실수(소수)도 이진수로 변환하면 무한소수가 됨
2-2 Functions and Console IO
Function
어떤 일을 수행하는 코드의 덩어리
ㄴ 코드를 논리적 단위로 분리 (캡슐화)
일단 알고 있는 기초 내용이다.
(Ai tech 코딩테스트 준비하면서 공부했던 내용들)
함수 형태
parameter 유무 / 반환여부에 따라 함수의 형태가 다름
Console In/Out
CLI : Command Line Interface
mac 에서는 terminal 사용
콘솔창 입출력
-
input()
input (“~~ “) : 사용시 ~~ 출력후 입력 받음
-
print()
출력형식
1) %string %(‘~’)
*padding
ex) %10.3f : 10칸을 비우고 3칸은 소수로 사용
2) ‘’{}’’ .format
3) f-string
name = "Suntae"
age = 39
print(f"My name is {name}\, and I'm {age}")
print(f'{name:20}')
#20칸 비워놔
print(f'{name:>20}')
#20칸 비워놓고 오른쪽 정렬
print(f'{name:*<20}')
#20칸 비워놓고 *로 채워 왼쪽 정렬
print(f'{name:*^20}')
#20칸 비워놓고 *로 채워 가운데 정렬
3. Conditionals and Loops
Conditions : 조건문
파이썬에서는 if / else/ elif 의 ‘‘예약어’‘를 사용해서 함.
-
(a == b) 와 (a is b) 의 차이
a is b : 주소를 비교함
a == b : 값을 비교함
- -5~256까지는 같은 메모리 주소를 사용하는 초창기 관습이 남아있음.
debugging
: 코드의 오류를 발견하여 수정하는 과정
1) 문법적 에러 2) 논리적 에러
4.String & advanced function concept
string 은 1byte 크기로 한 글자씩 메모리 공간이 할당 됨.
1 byte = 8 bit = 2^8 = 256 까지 저장 가능
기본적으로 UTF-8으로 가장 많이 쓰이고 있다.
- 정수
int -> 4 바이트
long -> 무제한
- 실수
float -> 8 바이트
Raw string
(r 붙이면 그대로 나옴)
raw_string = "자면 큰일난다.\n 진심"
print(raw_string)
# 자면 큰일난다
# 진심
raw_string = r"자면 큰일난다.\n 진심"
print(raw_string)
# 자면 큰일난다.\n 진심
Call by Object Reference
파이썬은 value, reference 로 호출되는것이 아니라
객체의 주소가 함수로 전달되는 방식이다.
ㄴ swap 할 때 꿀 떡
Scoping Rule
변수의 번위
-
local variable : 함수 내에서만 사용
-
global varialble: 프로그램 전체에서 사용
Recursive Function
재귀 함수
Function type hints
파이썬의 큰 특징 : dynamic typing
(변수 선언시 type 까지 지정함)
def do_function(var_name: str)
return
ㄴ 사용자에게 인터페이스, parameter 정보를 명확히 알려줄 수 있다.
Docstring
상세 스펙을 미리 작성
따옴표 세개 사이에 주석 달아주는 느낌 ㅇㅇ
vscode에서 cmd shift p 로 docstring 키면 자동으로 생성해주기도 함
def ans(a,b,list):
"""_summary_
Args:
a (_type_): _description_
b (_type_): _description_
list (_type_): _description_
"""
return
함수작성 가이드 라인
함수는 짧게, 이름은 역할과 의도 드러나게
공통적으로 많이 사용되는 코드,
복잡한 수식, 복잡한 조건은 함수로 처리
코딩 컨벤션 (통용되는 규칙)
중요한 건 일관성
읽기좋은 코드가 좋은 코드
들여쓰기는 Tab or 4 space
한 줄은 최대 79자까지
불필요 공백 피함
연산자는 1칸 이상 안 띄움
주석 갱신 필수(간단 명료하게 작성)
코드 마지막에는 항상 한 줄 추가
소문자 l, 대문자 I, 대문자 O 금지 (햇갈림)
함수는 소문자로 구성
PEP8
cmd에서 활용할 수 있음
-
flake8 모듈로 체크
flake8 <파일명>파일명>
conda install -c anaconda flake8
-
black 모듈로 알아서 고쳐주기
black <파일명>파일명>
conda install black
댓글남기기