-
3.1 수치형
- 정수형(int)
진법 접두 사용 가능한 숫자 예 16진법(hexadecimal) 0x 0 9, af0x2f 8진법(octal) 0o 0~7 0o17 2진법(binary) 0b 0, 1 0b1101 print 명령은 정수를 어떤 진법으로 표현하든 항상 10진수로 출력한다. 10진수 이외의 진법으로 정수를 출력하기 위해선 hex, oct, bin 함수를 사용하면 된다. 이 함수들은 10진수를 접두까지 붙여 문자열 형태로 전환한다. 변환한 결과는 문자열이므로 계산에는 사용할 수 없고 출력만 가능하다.
- 2진수, 8진수, 16진수 문자를 10진수로 변환하는 방법은 int의 두 번째 매개변수로 값을 넣어준다.
print(int('0b1010', 2)) print(int('0o12', 8)) print(int('0xa', 16))
10 10 10
- format의 두 번째 인수를 활용해 진수를 변환할 수도 있다.
print(format(10, '#b')) print(format(10, '#o')) print(format(10, '#x'))
0b1010 0o12 0xa
만일 알파벳 부분을 대문자로 출력하고 싶다면, #B, #X, #O를 사용하면 된다.
접두어를 제거하고 싶다면, #을 제거한 format을 사용한다.
print(format(10, 'b')) print(format(10, 'o')) print(format(10, 'x'))
1010 12 a
- 실수형(float)
정수에 비해 . 이하의 수가 있어 더 정밀한 값을 표현할 수 있다.
가수e지수
위와 같이 부동 소수점을 사용해 큰 값을 직관적으로 파악할 수 있다.
- 복소수형
복소수는 제곱해서 음수가 되는 가상의 숫자이다. 실제로 존재하지 않는 허수여서 실생활에서 쓸 일은 없지만 과학 분야에서 중간 과정 계산을 위해 종종 사용된다.
실수부 + 허수부j
2^10 = 1024 => 1000(K)
2^11 = 2^10 * 2 = 2K
2^10 = K
2^20 = M
2^30 = G
2^24 => 2^4 * M => 26M
3.2 문자열
- 문자열
어떤 문자든 포함할 수 있지만 예외적으로 문자열을 감싸는 기호인 따옴표는 따옴표 안에 적을 수 없다. 아래 문자열은 에러로 처리된다.
"I Say "Help" to you" -> error
큰 따옴표를 포함시키려면 작은 따음표로 문자열을 감싼다.
'I Say "Help" to you'
반대로 작은 따옴표가 문자열 안에 있을 때는 큰 따옴표로 감싼다.
"Let's go"
- 확장열 (Escape Sequence)
확장열 설명 \n 개행 \t 탭 (슬래시)" 큰따옴표 (슬래시)' 작은따옴표 (슬래시)\ \ 문자 \r -> 줄 바꾸지 않고 맨 앞으로 리턴
\r\n -> 줄 바꾸고 맨 앞으로 리턴
만일 확장열로 출력하고 싶지 않다면, 문자열 앞에 r 접두를 붙인다. r 접두가 있으면 문자열 내의 확장열을 적용하지 않고 있는 그대로(raw) 기억한다.
print(r"c:\temp\new.txt")
- 긴 문자열
긴 문자열을 두 행에 나누어 쓰면 에러가 난다.
s = "긴 문자열" -> error
이럴 때는 """ """ 세개의 큰 따옴표로 묶는다.
s = """ 강나루 구름 달 가듯이 나그네""" print(s)
"""는 화이트 문자를 데이터로 표시해준다.
화이트 문자는 탭, 스페이스 바, 엔터를 뜻한다.
"""를 사용하지 않는다면 행 계속 문자인 \를 사용한다. 행 끝에 \를 붙이면 이 줄이 아직 끝나지 않고 다음 줄에 계속 이어진다는 뜻이다. 개행하고 싶으면 \n 확장열을 적으면 된다.
p = "강나루 \ 건너서 \ 나그네" print(p)
콤마로 구분하지 않고 짧은 문자열을 쭉 나열하면 하나로 합쳐진다.
s = "korea" "japan" "2002" print(s) -> koreajapan2002
여러개의 문자를 개행해서 긴 문자열로 만들고 싶다면 전체를 괄호로 감싸야 한다.
s = ("korea" "japan" "2002") print(s)
ord 함수는 문자의 코드를 조사하고, chr 함수는 코드로부터 문자를 구한다.
print(ord('a')) print(ord('A')) print(chr(98)) for c in range(ord('A'), ord('Z') + 1): print(chr(c), end = '')
3.3 그 외의 타입
- 진위형
참, 거짓을 나타내는 True, False의 첫 자가 대문자임을 유의해야 한다.
파이썬의 None은 아무것도 아니라는 아주 특수한 의미로 사용된다. 변수에 None을 대입한 후 출력하면 None이 출력된다.
검색 결과가 없다거나 무너가 에러가 발생했다는 표식으로 사용된다.
- 컬렌션
컬렌션은 여러 개의 값을 모아서 저장한다. 다른 언어의 배열과 구조체와 유사하다.
리스트 -> 여러 개의 값을 하나의 변수에 순서대로 모아놓은 것이며 [] 괄호 안에 콤마로 구분하여 나열한다. 개수에 상관없이 얼마든지 많은 값을 하나의 리스트에 저장할 수 있다. 데이터 타입이 달라도 상관 없다.
member = ["손오공", "저팔계", "사오정"] print(member)
튜플(읽기 전용) -> 리스트와 거의 비슷하되 () 괄호로 멤버를 나열하고 실행 중에 값을 변경할 수 없다는 점이 다르다. 리스트는 요소를 삽입, 삭제, 추가할 수 있는데 비해 튜플은 한 번 정의한 값은 읽을 수만 있다.
사전 -> 키와 값의 쌍을 저장하여 실시간 검색을 지원한다.
집합 -> 요소의 모음을 관리하고 교집합, 합집합 등의 집합 연산을 지원한다.
<형변환 함수>
int -> int()
float -> float()
bool -> bool()
str -> str() (항상 성공한다.)