>>> a = 3.14 # 부동 소수점 숫자형
>>> a = "파이썬" # 문자열형
>>> a = True # 부울형
TypeError와 같은 오류 발생 가능, 변수는 하나의 자료형만을 사용할 것을 권장
변수명
문자, 숫자, _ 로 표현
숫자로 시작하는 변수는 만들 수 없으며, 대소문자는 꼭 구분해야 된다
파이썬3부터는 유니코드를 지원하므로 한글 변수명을 사용할 수 있다.
변수와 객체
파이썬의 모든 정보는 객체
변수는 객체에 대한 식별자 역할
>>> var1=10 # Step1. 메모리 공간에 정수 10의 값을 가진 객체 생성
# Step2. Step1에서 생성된 객체를 var1이 참조
>>> var2=10 # Step3. Step1에서 생성된 객체를 var2가 참조
>>> var1 is var2
True # Step4. 두 변수가 동일 객체를 참조
>>> var3=20 # Step5. 메모리 공간에 정수 20의 값을 가진 객체 생성
>>> var1 is var3 # Step6. Step5에서 생성된 객체를 var3가 참조
False # Step7. 두 변수가 다른 객체 참조
2. 변수와 자료형
(1) Bool
참, 거짓을 판단하는 표현식에 사용하는 자료형
True와 False값을 가짐
관계 연산자, 논리 연산자를 사용하는 표현식이 Bool값 반환
Bool값을 반환하는 관계 연산
>>> x,y=10,20
>>> x
10
>>> y
20
>>> x < y
True
>>> x > y
False
Bool값을 반환하는 논리연산
>>> under18 = False
>>> male = True
>>> under18 and male
False # False와 True에 대한 논리 연산자 and의 연산 결과
조건문에서 사용되는 Bool값
>>> if under18:
print("미성년자입니다.")
else:
print("성년입니다.")
성년입니다.
(2) Tuple
()안에 서로 다른 자료형의 값을 콤마(,)로 구분해 하나 이상 저장할 수 있는 컬렉션 자료형
인덱스를 이용해 튜플의 개별 항목에 접근 : 튜플 스튜던트는 두 개의 원소를 가지고 있어 유효한 인덱스의 범위는 0~1이기 때문에 오류가 난다
>>> student[0]
'홍길동'
>>> student[1]
20
>>> student[2]
Traceback (most recent call list):
flie"<input>",line 1, in <module>
IndexError: tuple index out of range
튜플의 항목 변경 (불가능) : 튜플은 한 번 저장된 항목의 값을 변경할 수 없기 때문에 오류가 난다
>>> student[1]=21
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
student[1]=21
TypeError: 'tuple' object does not support item assignment
새로운 튜플을 저장 student 는 변수이므로 새로운 튜플 객체를 참조하는 것은 문제가 안된다
>>> student = ("임꺽정",30)
>>> student
('임꺽정', 30)
(3) List
[]안에 서로 다른 자료형의 값을 콤마(,)로 구분해 하나 이상 저장할 수 있는 컬렉션 자료형
0부터 시작하는 인덱스를 이용해 접근할 수 있음
한번 저장된 항목이라도 변경할 수 있음
List형 변수 선언
>>> student = ["홍길동",20]
>>> student
['홍길동', 20]
인덱스를 이용해 리스트의 개별 항목에 접근 : 리스트 student는 두 개의 원소를 가지고 있어 유효한 인덱스의 범위는 0~1이기 때문에 오류가 난다
>>> student[0]
'홍길동'
>>> student[1]
20
>>> student[2]
Traceback (most recent call last):
File "<pyshell#9>", line 1, in <module>
student[2]
IndexError: list index out of range
리스트는 항목의 값을 변경할 수 있음.
>>> student[1]=21
>>> student
['홍길동', 21]
새로운 리스트를 저장 student가 변수이므로 새로운 리스트 객체를 참조할 수 있음
>>> student=["임꺽정",30]
>>> student
['임꺽정', 30]
(4) Set
{}안에 서로 다른 자료형의 값을 콤마(,)로 구분해 하나 이상 저장할 수 있는 컬렉션 자료형
None 객체 상태는 if문과 같이 True, False 부울값을 반환하는 식에서 False로 평가된다
>>> if obj: # obj가 None이므로 False로 평가
print("obj는 None이 아닙니다.")
else:
print("obj는 None입니다.") # else문의 print()함수 실행
obj는 None입니다.
>>> if not obj: # obj가 None이므로 False로 평가, not연산되어 True반환
print("obj는 None입니다.") # if문의 print()함수 실행
else:
print("obj는 None이 아닙니다.")
obj는 None입니다.
3. 변수의 생성 및 제거
변수를 생성하고 초기화하는 다양한 방법
변수는 기본적으로 한 번에 하나씩 생성하지만, 그 이상의 변수를 한 번에 생성할 수도 있음
>>> x = y = 10
>>> x
10
>>> y
10
튜플을 이용해 변수 생성하고 초기화
>>> x, y = (10, 20)
>>> (x, y) = 10, 20
>>> x, y = 10, 20
>>> (x, y) = (10, 20)
>>> x
10
>>> y
20
리스트를 이용해 변수 생성하고 초기화
>>> x, y = [10, 20]
>>> [x, y] = 10, 20
>>> [x, y] = [10, 20]
>>> x
10
>>> y
20
변수 생성과 초기화의 특징 → 쉽게 변수의 값 교체 가능
>>> x, y = y, x
>>> x
20
>>> y
10
변수의 제거
파이썬은 Garbage Collector에 의해 객체가 사용한 메모리 공간 자동관리함
그렇기 때문에 개발자가 메모리 관리를 직접할 필요 없음
사용하지 않은 변수를 제거할 경우 del()함수를 사용한다
>>> x = 10
>>> y = 20
>>> del(x)
>>> del(y)
>>> x
Traceback (most recent call last):
File "<pyshell#92>", line 1, in <module>
x
NameError: name 'x' is not defined
>>> y
Traceback (most recent call last):
File "<pyshell#93>", line 1, in <module>
y
NameError: name 'y' is not defined