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 |