Python

03. 타입

til_t 2021. 1. 20. 16:13

3.1 수치형

  • 정수형(int)
진법 접두 사용 가능한 숫자
16진법(hexadecimal) 0x 09, af 0x2f
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() (항상 성공한다.)