python 변수
19 May 2018 | python type패스트캠퍼스 웹 프로그래밍 수업을 듣고 중요한 내용을 정리했습니다.
개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있습니다.
이 포스팅에서는python
변수에 대해 설명합니다.
변수
파이썬의 모든것 (정수, 문자열, 함수 등)은 객체(object)로 이루어져 있다.
객체는 데이터의 형태를 결정해주는 타입으로 파이썬에서는 객체의 타입을 바꿀 수 없다.
프로그래머는 변수를 선언하고 사용하는 형태로 컴퓨터의 메모리에 값을 할당하고, 참조할 수 있으며 파이썬에서 값을 할당할 경우에는 =
를 사용한다. 기본적으로 우리는 =
는 같다
라고 생각하지만 파이썬에서 같다
의 의미는 ==
를 사용한다.
>>> var1 = 100
>>> pring(var1)
100
위와 같은 코드는 변수 var1
에 100이라는 정수를 할당하고, print
를 이용해 변수 var1가 가진 값을 출력한다.
그런데 변수는 단지 이름일 뿐이며 그 자체가 어떠한 값을 갖는것은 아니다.
위의 경우 var1이라는 변수는 100이라는 데이터를 직접 가지는 것이 아니라, 100이라는 정수형 객체가 있고 a는 단순히 해당 객체를 참조하는 역할을 한다.
즉
>>> var2 = var1
>>> var3 = var1
>>> var4 = var1
>>> var1 = 101
var2, var3, var4를 var1과 같다고 선언한 뒤 var1의 값을 바꾸면 상식적으로 우리는 var2, var3, var4의 값이 var1과 같은 101로 바뀌었을거라고 생각하지만,
>>> var1 = 101
>>> var2 = 100
>>> var3 = 100
>>> var4 = 100
이렇게 출력된다.
그 이유는 실제로 컴퓨터가 저장하고 있는 부분을 메모리라고 하는데, 컴퓨터의 데이터는 메모리에 저장이 되고 메모리는 주소를 가진다.
100 이라는 숫자가 어딘가 메모리에 들어가 있다. var1 이라는 변수는 얘가 바로 100이라는 숫자를 가지는게 아니라 그냥 100이라는 값을 참조하게 된다.(가리킨다)
따라서 var2, var3, var4는 var1이 100을 참조하는 것을 가리키면서 100이라는 숫자를 똑같이 참조하고 있다. 근데 이때 var1는 101이라고 재 정의되면서 var1은 101을 참조하고 그와 동시에 var1이 100을 참조하는 연결은 끊어지게 되면서 var1만 101을 가리키고 var2, var3, var4는 여전히 100을 가리키고 있는 것이다.
이러한 숫자들의 주소는 id 내장함수로 확인해볼 수 있다.
>>> id(var1)
4520513920
>>> id(var2)
4520513888
>>> id(var3)
4520513888
>>> id(var4)
4520513888
변수의 타입 확인
내장 함수 type 사용
>>> type(var1)
<class 'int'>
>>> type('안녕하세요')
<class 'str'>
여기서 int
는 integer(정수형)을 의미하고 str
은 string(문자형)을 의미한다.
Unicode와 Incoding
모든 문자 인코딩 방식을 모두 유니코드로 교체하려고 한다.
문자 집합, 즉 문자 set은 처음에는 영어밖에 없었는데(폰트는 미국에서 처음 나왔으니까) 그래서 컴퓨터 설계할 때 영어만 출력할 수 있도록 되어있었다. 그런데 컴퓨터가 전세계로 퍼져나가면서 다른 나라 사람들은 문자를 출력할 방법이 없었다.
그래서 문자 집합들을 만들기 시작했는데, 이를 만들면 바이트로 글자를 나타내는데, (1바이트로 나타낼 수 있는 글자 가지수는 (1바이트는 8비트) 256가지) 근데 문제는 한글이 굉장히 복잡한 언어여서 1바이트를 가지고 표현하던 아키드 코드의 부족한 점을 보완하기 위해 만든 코드가 유니코드이다.
변수의 입력과 출력
입력은 내장함수 input사용
>>> var = input()
>>> var = input('숫자를 입력하세요 :')
출력은 내장함수 print사용
print(var)
실습
1.1일이 몇초인지 계산 후 해당결과를 seconds_per_day 변수에 할당하라
seconds_per_day = 24 * 60 * 60
2.1년이 몇 초인지 계산 후 해당결과를 seconds_per_year 변수에 할당하라
seconds_per_year = 365 * seconds_per_day
3.각 변수의 타입을 확인하라
print(type(seconds_per_day))
혹은
type(seconds_per_year)
4.문자열을 입력해주세요 :
라는 안내문구를 띄워주도록 input
함수를 사용하고, 결과는 var
에 할당하라
var = input('문자열을 입력해주세요 : ')