파이썬은 JAVA, C와 달리 모든 것이 객체(Object)
이다. 이는 모든 변수가 실제 데이터를 저장하고 있는 것이 아니라 데이터가 저장되어 있는 객체의 주소를 저장
하고 있음을 의미한다.
파이썬의 자료형은 immutable 자료형
과 mutable 자료형
으로 나뉜다.
immutable 자료형은 저장된 값이 변경될 수 없는 자료형이다. 따라서 값을 변경하면 새로운 값을 가지는 객체를 새로 생성해서 대체한다. 반면 mutable 자료형은 값 변경시 객체를 변경하지 않고 값만 변경할 수 있다.
정수 정적 할당
파이썬은 자주 사용되는 정수인 -5 ~ 256을 정적 할당하여 사용한다.
리스트(list)는 여러 데이터를 연속적으로 저장하는 시퀀스 자료형
이다. 다른 언어와 달리 다양한 자료형
을 하나의 리스트에 담을 수 있다는 특징이 있다.
인덱싱 (indexing)
list의 값들은 index(offset)를 사용하여 값에 직접 접근할 수 있다.
슬라이싱 (slicing)
list[시작 위치, 끝 위치, step] : index를 기반으로 부분 값 반환
리스트 연산
concat
: '+' 연산자를 이용해 두 리스트를 합친 리스트를 반환
is_in
: 리스트에 값이 포함되었는지 확인
append
: 값 추가
extend
: 리스트를 이용해 값 한번에 추가
insert
: 특정 위치에 값 추가
remove
: 값 삭제
del
: 값 삭제 (메모리를 없애는 연산)
패킹 / 언패킹
arr = [1, 2, 3] #패킹
a, b, c = t #언패킹
print(a, b, c)
-------result---------
1 2 3
리스트와 같은 시퀀스 자료형으로 문자형 데이터를 저장한다. 시퀀스 자료형이므로 인덱싱, 슬라이싱을 사용할 수 있다.
문자열 출력 시 원하는 형식을 만들기 위해 formatting을 사용할 수 있다.
1. % string
'%s %d' %("hello", 8)
'%10.2f' %(1.23456) # %전체 공간 . 소수점 아래 숫자
2. format 함수
'{} {}'.format("hello", 8)
'{0:10.2f}'.format(1.23456) # {argumentIndex : 전체 공간.소수점 아래 숫자}
'{0:>10s} {}'.format("hello", 8) # > : 정렬
3. fstring
python 3.6 이후 formatting 방법
age = 23
f'my age : {age}.'
str = hello
f'{str : *>20}' # {변수 : (빈칸 채울 문자)(정렬)(전체 공간)}
def func(param : typeHint, ...) -> returnType:
```
docstring
```
statements
...
return returnValue
call by value
함수의 인자로 변수 값을 복사
하여 전달한다. 함수 안에서 값을 변경하여도 함수 외부 변수는 영향을 받지 않는다.
call by reference
함수의 인자로 변수의 주소
를 전달한다. 함수 안에서 인자의 값을 변경하면 원래 변수의 값도 변경된다.
call by object reference
파이썬에서 함수를 호출할 때 사용하는 방식이다. 함수의 인자로 객체의 주소
를 전달한다.
Immutable 변수는 함수 안의 변경 사항이 원래 객체에 영향을 미치지 않는다.
Mutable 변수의 경우에는 함수 안의 변경 사항이 원래 객체에 영향을 미칠 수 있다.
call by object reference : https://foramonth.tistory.com/20