파이썬의 기본 자료형에 대해서 알아보겠습니다!
숫자형 (Number)
1. 정수형 (Integer)
말 그대로 정수 자료형이 있습니다. 양의 정수, 음의 정수, 0을 사용할 수 있습니다.
>>> a = 200
>>> b = -200
>>> c = 0
2. 실수형 (Floating point)
실수 자료형이 있습니다. 실수 자료형을 표현하는 데 있어서 두 가지 방식이 있습니다.
첫 번째로는 우리가 일반적으로 사용하는 소수점 표현 방식입니다.
>>> a = 20.1234
>>> b = -20.1234
두 번째로는 컴퓨터식 지수 표현 방식입니다.
예를 들어, 1.23E10 은 1.23 * 10^10과 동일한 값을 나타냅니다.
>>> a = 1.23E10
>>> b = 1.23E-10
3. 8진수 / 16진수
8진수(Octal)는 숫자 0과 알파벳 O또는 o로 시작하도록 표현합니다.
>>> a = 0o123
16진수(hexadecimal)는 숫자 0과 알파벳 X 또는 x로 시작하도록 표현합니다.
>>> a = 0x1234
숫자형을 위한 연산자
1. 사칙연산 (+, -, /, *)
2. 제곱의 표현 (**)
x의 y제곱을 표현하려는 경우 x**y 로 표현합니다.
>>> a = 3
>>> b = 4
>>> c = a ** b
# 81
3. 나눗셈 후 나머지 (%)
% 연산자는 나눗셈을 하고 남은 나머지를 출력합니다.
>>> a = 100
>>> b = 3
>>> c = a % b
# 1
4. 나눗셈의 몫 (//)
// 연산자는 나눗셈의 몫을 출력합니다.
>>> a = 100
>>> b = 3
>>> c = a // b
# 33
문자열(string)
문자열을 만드는 방법은 총 4가지가 있습니다.
- "string text"
- 'string text'
- """string text"""
- '''string text'''
1번과 2번의 경우, 문장 안에 큰/작은 따옴표가 들어가는 경우, 문자열을 작은/큰 따옴표로 생성하기 위해 사용하는 방법입니다.
>>> a = "it's friday"
>>> print(a)
# it's friday
>>> b = '"fine thank you and you?"'
>>> print(b)
# fine thank you and you?
위의 예시와 같은 경우, escape code를 이용해서 동일한 결과를 만들어낼 수 있습니다.
>>> a = 'it\'s friday'
>>> print(a)
# it's friday
>>> b = "\"fine thank you and you?\""
>>> print(b)
# fine thank you and you?
* escape code 란?
미리 정의한 문자 조합으로 특정한 역할을 수행합니다. 대표적으로는,
1. \n : 줄 바꿈
2. \t : 탭 간격
3. \\ : 문자 '\'를 그대로 출력
4. \' : 작은 따옴표 (')
5. \" : 큰 따옴표 (")
3번과 4번의 경우는 여러 줄을 출력하려고 할 때 용이하게 사용할 수 있습니다.
>>> a = "one two three \n four five six"
>>> print(a)
# one two three
# four five six
개행 문자인 \n을 사용해서 두 줄에 걸쳐서 출력했지만, 사용자가 읽기 불편하고 줄이 길어진다는 단점이 있습니다. 이러한 불편함을 3, 4번 방법을 통해서 해결할 수 있습니다.
>>> a = """one two three
... four five six"""
>>> print(a)
# one two three
# four five six
""" 나 ''' 사이에는 여러 줄에 걸쳐서 문자열을 구성할 수 있기 때문에 위에 언급된 불편한 점들을 해결할 수 있습니다.
문자열 연산
1. 문자열 연결
+ 연산자를 이용해서 두 문자열을 연결할 수 있습니다. (concatenation)
>>> a = "fine thank you "
>>> b = "and you?"
>>> c = a + b
>>> print(c)
# fine thank you and you?
문자열과 다른 자료형과 해당 연산을 수행할 수 없습니다. 그러므로 str() 함수를 이용해서 다른 자료형을 문자열로 변환해서 연산할 수 있습니다.
>>> a = 26
>>> b = "my age is : "
>>> c = b + str(a)
>>> print(c)
# my age is : 26
2. 문자열 곱하기
* 연산자를 이용해서 문자열을 반복해서 출력할 수 있습니다.
>>> a = "hello "
>>> b = a * 3
>>> print(b)
# hello hello hello
3. 문자열 길이 구하기
len() 함수를 이용해서 문자열의 길이를 구할 수 있습니다.
>>> a = "fine thank you and you?"
>>> len(a)
# 23
4. 문자열 인덱싱
문자열의 각 문자를 인덱스를 이용해서 접근할 수 있습니다. 이 때, 각 인덱스는 0에서부터 시작합니다.
문자열의 뒤에서부터 접근하기 위해서는 - 를 이용해서 접근할 수 있습니다. -1의 경우 가장 마지막 문자를 접근하게 됩니다.
인덱스를 -0으로 접근하는 경우, 0번째 인덱스와 동일한 결과를 반환합니다.
>>> a = 'fine thank you and you?'
>>> print(a[0])
# f
>>> print(a[-2])
# u
>>> print(a[-0])
# f
5. 문자열 슬라이싱
문자열명[시작 인덱스 : 끝 인덱스]과 같이 표현합니다. 전체 문자열의 일부를 잘라내는(?) 느낌이라고 생각하시면 됩니다.
주의하셔야 할 점은 끝 인덱스의 값을 결과에 포함되지 않는다는 점입니다.
>>> a = "fine thank you and you?"
>>> b = a[5:14]
>>> print(b)
# thank you
위의 예시를 보시면 5번째 인덱스부터 13번째 인덱스까지만 결과에 포함되는 것을 보실 수 있습니다.
끝 인덱스를 생략하면 문자열 마지막까지 포함하고,
시작 인덱스를 생략하면 문자열 처음부터 결과에 포함됩니다.
>>> a = "fine thank you and you?"
>>> b = a[:14]
>>> print(b)
# fine thank you
>>> c = a[5:]
>>> print(c)
# thank you and you?
6. 문자열 포매팅 (Formatting)
문자열 포매팅은 포맷 코드를 사용하는 방법과 format() 함수를 사용하는 방법, f문자열 포매팅(3.6 버전부터)으로 수행할 수 있습니다.
첫 번째로, 포맷 코드를 사용하는 방법입니다.
문자열 안에 포맷 코드를 사용해서 사용자가 원하는 값을 문자열에 추가시킬 수 있습니다.
* 포맷 코드
1. %% : % 문자 그 자체
2. %f : 부동소수 값 표현
3. %c : 문자 1개 표현
4. %o : 8진수 값 표현
5. %x : 16진수 값 표현
6. %d : 정수 값 표현
7. %s : 문자열 표현 (%s는 어떠한 값이든 변환해서 출력하게 할 수 있습니다.)
포맷 코드를 이용해서 다양한 출력 형식을 만들 수 있는데, 예를 들면 다음과 같습니다.
1. %10d : 전제 길이가 10인 공간에 오른쪽 정렬해서 출력
2. %-12d : 전체 길이가 12인 공간에 왼쪽 정렬해서 출력
3. %0.4f : 소수점 4번째 자리까지만 출력
>>> print("I am %d years old"%26)
# I am 26 years old
>>> print("Today is %d / %d / %d" %(2020, 6, 23))
# Today is 2020 / 6 / 23
두 번째로, format() 함수를 사용하는 방법입니다.
format() 함수를 사용하는 방법도 두가지가 있는데,
- 중괄호 안에 0부터 시작하는 숫자를 입력합니다. format() 함수에 전달되는 값들은 입력된 순서에 따라서 중괄호의 위치에 입력됩니다.
- 중괄호 안에 이름을 지정해서 입력합니다. format() 함수에 전달되는 값들을 "이름=값" 형태로 지정해서 원하는 위치에 입력할 수 있습니다.
>>> print("Today is {0} / {1} / {2}".format(2020, 6, 23))
# Today is 2020 / 6 / 23
>>> print("Today is {year} / {month} / {day}".format(day=23, year=2020, month=6))
# Today is 2020 / 6 / 23
format() 함수를 이용해서도 다양한 형태의 출력이 가능합니다.
1. {0:<10} : 10자리, 왼쪽 정렬
2. {0:>12} : 12자리, 오른쪽 정렬
3. {0:^13} : 13자리, 가운데 정렬
4. {0:=^10} : 10자리, 가운데 정렬, 공백은 ^ 문자로 채우기
5. {0:0.4f} : 소수점 4자리까지만 표시
세 번째로는, f문자열 포매팅입니다.
문자열 제일 앞에 f를 사용해서 표시하고, 중괄호 안에 변수명을 사용해서 변수의 값을 그대로 출력시킬 수 있습니다.
>>> year = 2020
>>> month = 6
>>> day = 23
>>> string = f"Today is {year} / {month} / {day}"
>>> print(string)
# Today is 2020 / 6/ 23
7. 문자열 관련 함수
파이썬에서는 문자열과 관련된 다양한 함수들을 지원합니다.
- count : 문자 개수 세기
- find : 문자의 위치 알려주기
- join : answkduf tkqdlq
- upper : 모두 대문자로
- lower : 모두 소문자로
- strip : 공백 지우기
- replace : 문자열 바꾸기
- split : 문자열 나누기
>>> a = "abcdefga"
>>> b = "ABCDEFGA"
>>> a.count('a')
# 2
>>> a.find('a')
# 0
>>> a.find('h')
# -1
>>> a.index('a')
# 0
>>> a.index('h')
# 오류
>>> ",".join("abcd")
# a,b,c,d
>>> a.upper()
# ABCDEFGA
>>> b.lower()
# abcdefga
>>> c = " abc "
>>> a.lstrip()
# "abc "
>>> a.rstrip()
# " abc"
>>> a.strip()
# "abc"
>>> a.replace("abc", "AAA")
# AAAdefga
>>> d = "a:b:c"
>>> e = "a b c"
>>> e.split()
# ['a', 'b', 'c']
>>> d.split(":")
# ['a', 'b', 'c']
해당 게시물은 <점프 투 파이썬>을 읽고 제 나름대로 정리한 내용입니다!
더 구체적인 정보나, 추가적인 내용을 확인하고 싶으시면 <점프 투 파이썬>을 참고해주시기 바랍니다.
잘못된 부분 지적이나 피드백은 언제든지 환영입니다.
감사합니다 :)
'필기 노트 > Python 기초' 카테고리의 다른 글
[Python 기초] 기본 자료형 : 불(bool) (0) | 2020.07.10 |
---|---|
[Python 기초] 기본 자료형 : 집합 (set) (0) | 2020.07.10 |
[Python 기초] 기본 자료형 : 딕셔너리 (dictionary) (0) | 2020.06.29 |
[Python 기초] 기본 자료형 : 튜플 (tuple) (0) | 2020.06.25 |
[Python 기초] 기본 자료형 : 리스트 (list) (0) | 2020.06.24 |
댓글