본문 바로가기

Python/Hello Python

06. Data Type

int의 크기

파이썬2에서 int의 크기는 32비트로 제한됐었다. 이는 -2,147,483,648에서 2,147,483,647 까지

저장할 수 있는 충분한 공간이다. long은 그보다 더 많은 공간을 가지고 있다. 64비트의

9,223,372,036,854,775,808에서 9,223,372,036,854,775,807까지 허용한다. 파이썬3에서는 long이 사라지고 int의 크기가

유연해졌다. 심지어 64비트보다 더 큰 공간을 가질 수 있다. 따라서 다음과 같은 수도 담을 수 있다

(10**100을 구골(googol)이라고 부른다. 이는 발음하기 쉬운 구글(google)의 원래 이름이다 띠용)


출력 결과:


대부분의 언어에서 이렇게 처리하면 컴퓨터가 허용한 공간보다 더 많은 공간을 차지헀다는 뜻의

정수 오버플로(integer overflow)가 발생할 것이다. 이는 여러가지 나쁜 영향을 일으키지만 파이썬은

문제없이 아주 큰 정수를 처리한다.



부동소수점수

정수는 숫자만으로 구성되어 있지만 부동소수점수(파이썬에서는 float 이라 함)는 소수점이 있다. 부동소수점수는 +, -, *, /, //, **, % 연산과 

divmod() 함수를 사용할 수 있다는 점에서 정수와 유사하게 처리된다.

부동소수점수로 형변환하기 위해서는 float() 함수를 사용한다. 전에 본거처럼 부울값은 작은 정수처럼 간주한다.

출력 결과:

float(True) : 1.0

float(False) : 0.0


정수에서 부동소수점수로 변환할 때는 간단하게 소수점을 붙인다.

출력 결과:

float(98) : 98.0

float('99') : 99.0


유효한 부동소수점수의 문자열(숫자, 기호, 소수점, 혹은 지수)을 부동소수점수로 변환할 수 있다.

출력 결과;

float('98.6') : 98.6

float('-1.5') : -1.5

float('1.0e4') : 1.0e4



문자열

파이썬3에서는 유니코드(unicode) 표준에 대한 지원으로 전 세계에서 쓰이는 언어들의 많은 기호를 담을 수 있다.

파이썬3의 이러한 표준에 대한 지원이 파이썬2로부터 분리된 가장 큰 이유다. 

다른 언어와 달리 파이썬에서는 문자열이 불변(immutable)이다. 문자열 자체는 변경할 수 없지만, 같은 효과를 얻기 위해

문자열의 일부를 다른 문자열로 복사할 수는 있다.


1. 인용 부호로 문자열 생성

단일 인용 부호 혹은 이중 인용 부호를 사용해서 다음과 같이 문자열을 만들 수 있다.

대화식 인터프리터는 문자열을 단일 인용 부호로 출력한다. 이와 같이 파이썬에서는 단일/이중 인용 부호를 똑같이 처리한다.

왜 두 가지 종류의 인용 부호가 있을까? 

- 인용 부호가 포함된 문자열을 만들기 위해.

- 단일 인용 부호의 문자열을 이중 인용 부호에 넣거나, 이중 인용 부호의 문자열을 단일 인용 부호에 넣을 수 있다.


# 파이참에 말고 python 인터프리터에 함.


- 3개의 단일 인용 부호 혹은 3개의 이중 인용 부호 사용


3개의 단일 인용 부호는 위와 같은 짧은 문자열에는 유용하지 않다. 일반적으로 고전시처럼  여러 줄의 문자열에 사용.

   # 에드워드 리어(영국의 풍경화가 및 시인)의 고전시

   # 인터프리터


대화식 인터프리터의 첫 번째 줄 >>>와 ...에서 사용자 입력을 기다린다. 

다음과 같은 시에서 단일 인용 부호를 사용하면 이런 에러가 발생할 것이다.


만약 3개의 단일 인용 부호 안에 여러 줄이 있는 경우, 문자열 끝에 들어 있는 라인 끝 문자가 보존된다.

또한 양쪽 끝에 공백이 있는 경우에도 보존된다.



그런데 print()의 출력 결과와 대화식 인터프리터의 작동 출력 결과는 다르다.


print()는 문자열에서 인용 부호를 제거한 뒤 내용을 출력한다. 대화식 인터프리터가 자동으로  출력한 것과는 달리, 수동으로 결과를 출력한다.

출력한 것들 사이의 공백과 줄바꿈을 유용하게 추가할 수 있다. '\n'과 같은 문자를 이스케이프 문자라고 한다.

인터프리터는 단일 인용 부호 또는 이스케이프 문자가 들어있는 문자열도 출력할 수 있다.

문자열을 한 문자열로 합칠 때 문자열 사이에 공백을 입력할 수 있어서 유용하게 사용되는 빈 문자열이 있다. 

이 또한 인용 부호로 만들 수 있다.








'Python > Hello Python' 카테고리의 다른 글

08. 문자열 다루기2  (0) 2020.04.19
07. 문자열 다루기1  (0) 2020.04.19
05. 형변환  (0) 2020.04.14
04. 진수  (0) 2020.04.14
03. 숫자  (0) 2020.04.10