목차
- 참과 거짓
- 변수란?
- 변수를 만드는 방법
- 메모리에 생성된 변수 없애기
- 리스트를 변수에 넣고 복하기
- 리스트 복사하고 다른 리스트 가리키기
참과 거짓
자료형에는 참과 거짓이 있으며 중요한 특징임과 동시에 자주 쓰이는 부분이다.
자료형 | 값 | 참 or 거짓 |
문자열 (String) | "python" | 참 |
" " | 거짓 | |
리스트 (List) | [1, 2, 3] | 참 |
[ ] | 거짓 | |
튜플 (Tuple) | ( ) | 거짓 |
딕셔너리 (Dictionary) | { } | 거짓 |
숫자형 (Number) | 0이 아닌 숫자 | 참 |
0 | 거짓 | |
None | 거짓 |
- 문자열, 리스트, 튜플, 딕셔너리 등의 값이 비어있으면 거짓이 된다.
- 숫자는 그 값이 0일 때 거짓이 된다.
- None은 거짓으로만 알고 있자
# 리스트가 비어있을 경우의 False 출력
>>> if []: <---- 만약 []가 참이면
... print("True") <---- True라는 문자열 출력
... else: <---- 만약 []가 거짓이면
... print("False") <---- False라는 문자열 출력
...
False
# 리스트에 요소값이 있을 경우의 True 출력
>>> if [1, 2, 3]:
... print("True")
... else:
... print("Flase")
...
True
위 소스코드를 해석해 보면 아래와 같은데 이해하기 쉬울 것이다.
만약 [1, 2, 3]이 참이면 "True"라는 문자열을 출력하고, 그렇지 않으면 "False"라는 문자열을 출력하라.
변수
1. 변수란?
변수는 아래의 예시와 같이 자료형의 값을 저장하는 공간을 말한다. (지금까지 이미 앞에서 변수는 많이 사용했었다.)
파이썬에서 사용하는 변수는 객체를 가리키는 것이다. 객체는 자료형을 포함해 파이썬에서 사용되는 모든 것을 뜻한다.
>>> a = 3
위 소스코드를 보면 3이라는 값을 가지는 객체인 정수 자료형을 변수인 a에 자동으로 저장된다.
변수 a는 3과 같은 객체가 저장된 메모리의 위치를 가리키는 레퍼런스(Reference)라고 할 수 있다.
>>> a = 3
>>> b = 3
>>> a is b
True
변수 a와 b가 같은 객체를 가리키고 있는지 판단은 파이썬의 내장함 수 is를 통해 할 수 있다.
2. 변수를 만드는 방법
# 튜플로 a, b에 값 대입
>>> a, b = ('python', 'life')
>>> (a, b) = 'python', 'life
# 리스트로 변수 만들기
>>> [a, b] = ['python', 'life']
# 여러 개의 변수에 같은 값 대입
>>> a = b = 'python'
위 소스코드 중 튜플의 경우 괄호를 생략해도 되기 때문에 두 가지의 경우 모두 결과는 동일하다.
# 두 변수의 값 바꾸기
>>> a = 3
>>> b = 5
>>> a, b = b, a <---- a와 b의 값을 바꾸기
>>> a
5
>>> b
3
처음에 a에 3, b에 5라는 값을 대입했고, a, b = b, a로 문장을 수행 후 그 값이 서로 바뀐 것을 확인할 수 있다.
3. 메모리에 생성된 변수 없애기
위 소스코드에서 알아봤던 a = 3은 3이라는 정수형 객체를 메모리에 생성하는데 이런 특정한 객체를 가리키는 변수를 없앨 수 있는 방법 역시 존재한다.
>>> a = 3
>>> b = 3
>>> del(b) <---- 변수 b 삭제
>>> a <---- 변수 a는 아직 존재하기 때문에 객체 출력 가능
3
>>> b <---- 변수 b는 삭제되었기 때문에 객체 출력 명령 시 오류 발생
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'b' is not defined
4. 리스트를 변수에 넣고 복사하기
>>> a = [1, 2, 3]
>>> b = a <---- 변수 b에 변수a를 복사
>>> a[1] = 4 <---- 변수 a의 2번째 값을 4로 변경
>>> a
[1, 4, 3]
>>> b <---- 변수 b역시 변경된 것을 확인할 수 있음
[1, 4, 3]
위 소스코드를 보면 변수 b에 a에 저장된 리스트를 대입하고, a[1]을 4로 변경했는데 변수 b 역시 변경되었다. 그 이유는 a, b모두 같은 리스트인 [1, 2, 3]을 가지고 있기 때문이다. 변수의 이름만 다를 뿐이지 같은 리스트를 가지고 있는 것이다.
5. 리스트 복사하고 다른 리스트 가리키기
# [:]의 사용
>>> a = [1, 2, 3]
>>> b = a[:] <---- a의 리스트를 복사하고 b에 대입
>>> a[1] = 4
>>> a
[1, 4, 3]
>>> b
[1, 2, 3] <---- a[1]을 4로 변경했지만 b의 리스트는 변화가 없음
# copy 모듈 사용
>> a = [1, 2, 3]
>>> from copy import copy <---- 파이썬 모듈 부분에서 설명 한다고 한다.
>>> b = copy(a) <---- 변수 b에 a를 복사한다.
>>> a
[1, 2, 3]
>>> b
[1, 2, 3] <---- 변수 a와 같은 리스트를 가진 변수 b
>>> a is b
False <---- 같은 리스트를 가지고 있지만 서로 다른 객체임을 확인
내용 출처: 책 '점프 투 파이썬'의 내용
'Programing > Python' 카테고리의 다른 글
[Python 입문] 9. 파이썬 제어문 - for (0) | 2020.03.19 |
---|---|
[Python 입문] 8. 파이썬 제어문 - while (0) | 2020.03.17 |
[Python 입문] 7. 파이썬 제어문 - if (0) | 2020.03.17 |
[Python 입문] 5. 파이썬 자료형 - 튜플, 딕셔너리, 집합 (0) | 2020.03.15 |
[Python 입문] 0. 비전공 초짜의 Python 시작하기 with 점프 투 파이썬 (1) | 2020.03.08 |