지금까지 설치 작업을 해왔으므로 이제 Python 기본 사항에 대해 진지하게 살펴보겠습니다.
먼저 파이썬에서 사용하는 변수의 개념을 살펴보고 각 변수의 데이터 타입을 알아보자.
파이썬 변수의 개념
이것이 우리에게 가장 친숙한 변수입니다.
y=x+2
여기서 y의 결과는 x 값에 따라 달라집니다.
이것이 변수가 변경될 수 있는 숫자, 다른 값을 가질 수 있는 객체라는 것을 아는 방법입니다.
파이썬에서 변수의 개념은 약간 다릅니다.
파이썬에서 변수는 다음과 같은 유형입니다.
메모리 주소당신이 의미하는 개념입니다
a=1
타자를 쳤다고 하면 직관적으로 미래에 a의 값을 1로 지정하는 명령어처럼 보인다.
즉, 곧 1이 될 것이라는 의미입니다.
하지만 정확히 말하면 이 변수 a의 메모리 주소에 1을 넣습니다.
그 뜻은. 컴퓨터에서 a라는 변수가 선언되는 순간 우리는 특정 메모리 주소나 집 주소를 할당받았고 그 주소가 어디에 있는지 모르지만 이름을 a라고 부르며 통신합니다.
거리 주소와 같습니다.
강남대로라고 하면 강남대로가 몇 위, 몇 동에 있는지 정확히는 모르지만 어쨌든 강남대로라는 주소를 알아내서 기억하고 싶었던 주소와 맞췄다.
.
요약하자면, 파이썬에서 변수는 특정 값을 저장하는 장소를 의미하며 변수가 선언되는 순간 메모리의 특정 영역이 할당됩니다.
a = 1의 의미는 “a is 1″이 아니라 a라는 메모리에 1을 쓰는 것을 의미합니다.
이 예는 변수의 개념을 더 잘 이해하는 데 도움이 됩니다.
우리는 처음에 값 1을 넣습니다.
그리고 a는 a+1의 값에 다시 삽입됩니다.
여기서 왼쪽의 a는 변수이고 오른쪽의 a는 기존 a의 값입니다.
따라서 변수 a에 할당된 값은 1에서 2로 새롭게 변경됩니다.
~에 할당하다
이런 식으로 인쇄하면 ① 값 2나온다
a = a + 1은 a + = 1로 쓸 수 있다.
다시 출력하면, ② 값은 3로 변경된 것을 볼 수 있습니다.
변수는 문자, 숫자, 밑줄(_)을 조합하여 생성할 수 있으며 공백은 허용되지 않습니다.
알파벳은 대소문자를 구분하며 코딩 후 긴 텍스트의 내용을 이해하려면 엄격하게 짧은 변수 이름보다 의미 있는 변수 이름을 사용하십시오. for, if와 같이 특별한 의미를 가진 예약어는 변수 이름으로 사용할 수 없습니다.
(변수 이름 지정 예)
ㅏ
오래된
수익_1년
Degree_float_type
파이썬 데이터 유형
이름이 지정된 변수의 유형 속성은 변수가 갖는 값의 종류에 따라 다릅니다.
변수가 문자형인지 숫자형인지, 특히 정수형인지 실수형인지 구분됩니다.
가장 기본적인 데이터 유형은 다음과 같습니다.
데이터 형식 | 유형 | 유형 | 예 | 설명 |
정수 | 정수 | 양수 및 음수 | -2, 25, 100 | a=3 |
실수 | 호버링 | 소수점이 있는 실수 | 25.841, -3.7 | a=5.0 |
문자 유형 | 선 | 따옴표로 묶은 문자열 | abcd, abc123 | a=”abcd” |
논리적인 남자 | 부울 | 옳고 그름 | 허위 사실 | a=참 |
먼저 문자 타입은 위 표의 선언 예시와 같이 따옴표로 묶어서 문자임을 나타내는데, 작은따옴표 ‘~~’와 큰따옴표 ‘~~’ 두 개를 사용할 수 있으며, 각각 사용할 수 있다.
세 번 반복됩니다.
문자 유형을 선언하는 방법의 예를 살펴보겠습니다.
## 코드입력
a="hello"
b='''hello'''
c="hello"
d="""hello"""
e="hello, it's me."
f="hello, my "world" "
print(a,b,c,d)
print(e,f)
## 실행결과
hello hello hello hello
hello, it's me. hello, my "world"
작은따옴표와 큰따옴표로 문자열을 선언할 수 있으며 작은따옴표 안에 큰따옴표가 있고 큰따옴표 안에 작은따옴표가 있는 문자열을 만들 수 있습니다.
위의 변수 선언을 아래의 출력과 비교하면 문자 변수에 값이 어떻게 할당되는지 알 수 있습니다.
숫자형은 정수만 포함하는 int와 소수점 이하의 정보를 포함하는 float로 구분됩니다.
변수 선언 시 소수점을 포함하면 Float 타입의 실수 변수가 되고, 정수 부분만 입력하면 Int 타입의 정수 변수가 됩니다.
이와 같이 입력과 동시에 변수의 타입이 결정되는 것을 동적 타이핑(dynamic typing)이라고 합니다.
## 코드입력
int_a=2
float_a=2.0
str_a="2.0"
print(int_a)
print(float_a)
print(str_a)
## 실행결과
2
2.0
2.0
위의 예에서 보듯이 숫자를 따옴표로 묶어 문자와 같은 값을 만들 수 있습니다.
str_a의 2.0은 숫자가 아니라 2.0의 텍스트 문자열입니다.
마지막으로 논리형은 변수가 참인지 거짓인지를 결정하는 1 또는 0의 값만 가질 수 있도록 합니다.
변수 유형의 유효성 검사 및 변환
변수를 생성하고 해당 변수가 어떤 유형인지 확인하고 싶을 때가 있습니다.
이 경우 type 명령을 사용하여 변수의 유형을 확인할 수 있습니다.
type(a)가 실행되면 a의 타입인 int가 반환된다.
유형 그 사이에 변경하고 싶다면 변수에 이와 같이 다른 데이터형 이름을 지정하면 모양이 변경됩니다.
a는 원래 1만 넣으면 int형인데 float(a)라고 부르면 float(a) = 1,0인 진짜 데이터가 된다.
이 시점에서 a 자체는 수정되지 않고 a와 함께 float 형식으로 출력됩니다.
이를 통해 int, float, str 및 bool 함수를 사용하여 변수를 각각의 데이터 유형으로 변환할 수 있습니다.
a=1
b=2.0
a+b
3.0
Integer 유형의 변수와 Real 유형의 변수를 사용하면 결과는 실수 유형입니다.
그런데 이렇게 수치형과 문자형을 계산하면 타입 오류가 발생한다.
이 경우 모든 작업을 숫자로 수행하거나 텍스트만 수행하고 계산해야 합니다.
Python 변수의 다양한 데이터 유형 변환에 대한 테스트 결과입니다.
## 정수형, 실수형, 문자형, 부울형을 정수형으로 변환
## 각 자료형을 int 정수형으로 변환
#1 int(int) : int→int
print("#1 int(5)=",int(5))
#2 int(float) : float→int
print("#2 int(5.0)=",int(5.0))
#3 int(str) : str→int
print("#3 int('5')=",int('5'))
#4 int(bool) : bool→int
print("#4 int(True)=",int(True))
## 실행 결과
#1 int(5)= 5
#2 int(5.0)= 5
#3 int('5')= 5
#4 int(True)= 1
## 정수형, 실수형, 문자형, 부울형을 실수형으로 변환
## 각 자료형을 float 실수형으로 변환
#5 float(int) : int→float
print("#5 float(5)=",float(5))
#6 float(float) : float→float
print("#6 float(5.0)=",float(5.0))
#7 float(str) : str→float
print("#7 float('5')=",float('5'))
#8 float(bool) : bool→float
print("#8 float(True)=",float(True))
## 실행 결과
#5 float(5)= 5.0
#6 float(5.0)= 5.0
#7 float('5')= 5.0
#8 float(True)= 1.0
## 정수, 실수, 문자, 부울을 문자로 변환
## 각 자료형을 str 문자형으로 변환
#9 str(int) : int→str
print("#9 str(5)=",str(5))
#10 str(float) : float→str
print("#10 str(5.0)=",str(5.0))
#11 str(str) : str→str
print("#11 str('5')=",str('5'))
#12 str(bool) : bool→str
print("#12 str(True)=",str(True))
## 실행 결과
#9 str(5)= 5
#10 str(5.0)= 5.0
#11 str('5')= 5
#12 str(True)= True
## 정수형, 실수형, 문자형, boolean을 boolean으로 변환
## 각 자료형을 bool 불리언으로 변환
#13 bool(int) : int→bool
print("#13 bool(5)=",bool(5))
#14 bool(float) : float→bool
print("#14 bool(5.0)=",bool(5.0))
#15 bool(str) : str→bool
print("#15 bool('5')=",bool('5'))
#16 bool(bool) : bool→bool
print("#16 bool(True)=",bool(True))
## 실행 결과
#13 bool(5)= True
#14 bool(5.0)= True
#15 bool('5')= True
#16 bool(True)= True
예제 5개만 포함해서 모두 변환했지만 문자를 숫자형으로 변경하려고 하면 간혹 오류가 발생하는 경우가 있습니다.
위의 테스트에서 boolean type으로 전환하면 0이 아니면 모두 true로 표시되는 것도 볼 수 있습니다.
반면에 부울 True는 숫자 형식으로 1로 변환됩니다.