[Python] 03.변수 선언 및 할당
- Develop/Python
- 2020. 12. 29.
1. 변수 할당
파이선에서 변수할당은 다른 스크립트 언어(php, shell script)처럼 특정 스트링을 입력 후 값을 할당합니다. 좌측은 변수명, 우측은 값을 입력합니다. 또한 변수명은 숫자로 시작할 수 없으며 대쉬, 특수문자로 시작할 수 없습니다. 언더바(_)만 변수명 시작으로 지정할 수 있지만 가독성상 특수한 경우를 제외하고는 권하지는 않습니다.
2. 사용방법
ex) 변수명 = 값
c나 java처럼 변수에 변수 타입을 지정하지 않습니다. 변수에 값을 대입하면 알아서 스트링형, 숫자형을 대입합니다. 대부분의 스크립트 언어는 위와 같은 방식을 취하고 있습니다.
▶︎ 기본
a = 1
b = '1'
c = 'abc'
▶︎ 순서대로 할당.
a, b = ('c', 'd')
a에 'c', b에 'd'가 할당
(a, b) = 'c', 'd'
나중에 설명하지만 위의 속성들을 튜플이라고 하는데 이 튜플들은 괄호를 생략해도 할당이 된다.
[a,b] = ['c', 'd']
위와 같음.
a = b = 'python'
여러변수에 한번에 값을 할당할 수 있다.
▶︎ 튜플 패킹 및 튜플 언패킹
변수를 할당하는 방법에 따라 다음과 같이 두가지 방법으로 나뉩니다.
• 튜플 패킹(Tuple Packing)과 언패킹(Tuple Unpacking (패킹))
튜플 패킹 : 하나의 변수에 여러 값을 모두 저장.
코드 :
x = 10,20,30
print(x)
결과 : 결과가 ()로 묶여 있음. 즉 하나의 값임.
(10, 20, 30)
• 튜플 언패킹 : 각각의 변수에 하나의 값들만 대입.
코드 :
a,b,c = 10,20,30
print(a,b,c)
결과 : 결과가 각각의 변수에 저장되어 각각 출력됨.
10 20 30
3. 변수 캐스팅
대표적인 캐스팅은 다음과 같은 것들이 있습니다. 이 외에 더 많은 캐스팅 종류가 있습니다.
str(1) : 스트링으로 캐스팅
float(1) : 실수로 캐스팅
int(1.0) : 정수로 캐스팅
사용자 입력을 받는 값은 무조건 스트링 값으로 넘어오게 됩니다. 숫자로 처리를 해야 할 시 반드시 캐스팅이 필요합니다.
user_input = input("숫자 입력")
num = int(user_input) -> int형으로 변환.
print(num*num)
캐스팅을 포함하여 한번에 처리를 원할 시 다음과 같이 합니다.
한방 처리 : user_input = int(input("숫자 입력"))
4. 수정 가능 여부
• 문자열을 변수에 할당할 경우 자동으로 문자 하나하나마다 인덱싱이 됩니다. 하지만 인덱싱이 된 각 문자를
수정하는건 불가능합니다.
코드 :
# 한번 할당된 위의 변수 a는 불변입니다. 인덱싱해서 수정 시도시 에러가 발생합니다.
a=“hello world”
# 인덱싱된 캐릭터를 출력
print(a[0])
# 변경 시도
# 에러발생.
a[0]="b"
print(a[0])
출력 :
h
TypeError: 'str' object does not support item assignment
위의 에러가 발생하면서 수정할 수 없다고 나오게 됩니다.
• 반대로 리스트의 값들은 수정이 가능합니다. 변수에 하나의 값이 아닌 여러 값으로 변수초기화를 시키기 때문에 가능합니다.
리스트에 관한 내용은 앞으로 배우게 될 것입니다.
코드 :
heights = [1.4, 1.3, 1.5 ,2 ,1.4, 1.5, 1]
# 인덱스 0번의 숫자 1.4 출력.
print(heights[0])
# 인덱스 0번의 값 100으로 변경. 그리고 출력.
heights[0] = 100
print(heights[0])
출력 :
1.4
100
5. 변수 값 교환
변수에 할당된 값을 간단히 변경하는 방법이 있습니다.
코드 :
a=5
b=4
print(a,b)
결과 : 값 교환
a, b=b,a
print(a,b)
■ 파이선 다른 회차
[Python] Intro : Very Quick Python : https://myinfrabox.tistory.com/169
[Python] 01.Python 준비 : https://myinfrabox.tistory.com/170
[Python] 02.Python 스크립트 작성 방법 : https://myinfrabox.tistory.com/171
[Python] 04.문자열 처리 : https://myinfrabox.tistory.com/173
[Python] 05.조건문 : https://myinfrabox.tistory.com/174
[Python] 06.반복문 : https://myinfrabox.tistory.com/175
[Python] 07.튜플(Tuple) : https://myinfrabox.tistory.com/176
[Python] 08.리스트(List) : https://myinfrabox.tistory.com/177
[Python] 09.사전(Dictionary) : https://myinfrabox.tistory.com/178
[Pytho] 10.set : https://myinfrabox.tistory.com/179
[Python] 11.함수(Function) : https://myinfrabox.tistory.com/180
[Python] 12.클래스(Class) : https://myinfrabox.tistory.com/181
[Python] 13.외부 클래스 사용하기 : https://myinfrabox.tistory.com/182
[Python] 14.파일처리 : https://myinfrabox.tistory.com/183
[Python] 15.MySQL Database : https://myinfrabox.tistory.com/184
'Develop > Python' 카테고리의 다른 글
[Python] 05.조건문 (0) | 2020.12.29 |
---|---|
[Python] 04.문자열 처리 (0) | 2020.12.29 |
[Python] 02.Python 스크립트 작성 방법 (0) | 2020.12.29 |
[Python] 01.Python 준비 (0) | 2020.12.28 |
[Python] Intro : Very Quick Python (0) | 2020.12.28 |