요약 기호, 선, 점 등을 사용해 각종 사상의 상호관계나 과정, 구조 등을 이해시키는 설명적인 그림
시각 언어, 회사에서는 ppt 등을 준비할 때 자주 이용하게 된다.
불변적 객체(immutable)란, 메모리 안에 담겨 있는 값이 언제나 변하지 않는 객체를 의미한다. 예를 들면, 다음과 같은 종류들은 불변 객체이다.
정수형(int) & 불리언형(boolean)
실수형(float)
복소수형(complex)
문자열형(string)
튜플형(tuple)
바이트형(bytes)
frozenset형
decimal 라이브러리의 Decimal형
range형
반대로, 가변적 객체(mutable)란 메모리 안에 담겨 있는 값이 변할 수 있는 객체를 의미한다. 다음과 같은 같은 종류들은 가변 객체이다.
리스트형(list)
집합형(set)
사전형(dictionary)
바이트 배열형(bytearray)
사용자 정의 class형 (이는 사용자가 불변 객체로 정할 수 있지만, 일반적인 경우 가변 객체이다.)
우리가 알고있는 '='의 역할은 새로운 변수에 메모리를 할당하는 것이다. 그러나, 변수가 100만개, 1000만개와 같이 변수가 많아질 경우 메모리 공간의 낭비가 발생할 수 있다.
이와 같이 '='의 역할이 달라지는 것은 '='의 우측에 있는 값이 mutable한지, immutable한지에 따라 달라진다. mutable의 경우 기존의 메모리 주소가 할당되며, immutable의 경우 기존의 메모리 주소가 할당되지만, 새로운 메모리 주소가 할당될 수 있다.
따라서, 파이썬은 자체적으로 포인터를 활용하지만, 할당하려는 객체가 mutable한지, immutable한지에 대하여 다르게 작동한다.
프로그래밍 언어에서 다른 변수, 혹은 그 변수의 메모리 공간주소를 가리키는 변수를 말한다. 포인터가 가리키는 값을 가져오는 것을 역참조라고 한다.
한글 그대로 번역하면 '매개변수'란 뜻이다. 즉,함수를 정의 할 때 외부로부터 받아들이는 임의의 값을 의미한다.
def f(x,y) ------ 함수 정의시 사용하는 임의의 값:parameter
return x+y
f(3,4) --- 함수 호출시 사용하는 값:argument
에서 x,y가 파라미터라고 할수 있다.
그럼 argument란?우리말로는 '인수' 라고 번역되는데,함수를 호출할 때 이 때 사용하게 되는 일련의 값들을 아규먼트라고 부른다.예컨대 위에 파라미터의 예를 들었던 함수를 호출한다고 하면,f(3,4)에서 3,4는 아규먼트이다.
즉, '파라미터의 값으로 아규먼트 3과 4를 대입하였다'라는 의미가 성립하는것이다.이처럼 파라미터와 아규먼트는 분명 같은위치에 있지만 다른의미로 쓰이는 것을 알수 있다.
a = [1, 2, 3]
a.append('나현','나나현')
print(a)
#TypeError: list.append() takes exactly one argument (2 given)
# 인자 하나만 추가 할수 있다. (어펜드함수는)
더하기 (+) 연산자는
a = [1, 2, 3]
a = a + ['나현', '나나현']
print(a)
[1, 2, 3, '나현', '나나현']
#인자 여러개 추가 가능하다.
a = [2, 5, 3]
print(a.sort())
None
두 개의 변수를 교환하는 방법 (재밌는거 나온다)
a = 10
b = 20
# a와 b를 교환
a, b = b, a
print(a, b)
20 10
a = 10
b = 20
# a와 b를 교환
swap(a, b)
print(a, b)
name 'swap' is not defined
내 vscode에선 왜 이렇게 뜨는지 모르겠다