본문 바로가기
필기 노트/Python 기초

[Python 기초] 기본 자료형 : 숫자형(number), 문자열(string)

by misconstructed 2020. 6. 22.
728x90

파이썬의 기본 자료형에 대해서 알아보겠습니다!

숫자형 (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가지가 있습니다.

  1. "string text"
  2. 'string text'
  3. """string text"""
  4. '''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() 함수를 사용하는 방법도 두가지가 있는데,

  1. 중괄호 안에 0부터 시작하는 숫자를 입력합니다. format() 함수에 전달되는 값들은 입력된 순서에 따라서 중괄호의 위치에 입력됩니다.
  2. 중괄호 안에 이름을 지정해서 입력합니다. 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. 문자열 관련 함수

파이썬에서는 문자열과 관련된 다양한 함수들을 지원합니다.

  1. count : 문자 개수 세기
  2. find : 문자의 위치 알려주기
  3. join : answkduf tkqdlq
  4. upper : 모두 대문자로
  5. lower : 모두 소문자로
  6. strip : 공백 지우기
  7. replace : 문자열 바꾸기
  8. 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']

 


해당 게시물은 <점프 투 파이썬>을 읽고 제 나름대로 정리한 내용입니다!

더 구체적인 정보나, 추가적인 내용을 확인하고 싶으시면 <점프 투 파이썬>을 참고해주시기 바랍니다.

잘못된 부분 지적이나 피드백은 언제든지 환영입니다.

감사합니다 :)

 

 

 

 

728x90

댓글