본문 바로가기
Integration & Python

파이썬의 자료형 - 숫자, 문자열

by 누워서 코딩 2020. 4. 7.

파이썬은 C나 C++에 자료형 앞에 의무적으로 붙는 int, float, char등과 같은 형 선언(Type)을 하지 않아도 된다.

이것은 파이썬의 매우 큰 강점 중 하나다.

 

 

이번 장에서는 파이썬에서 사용하는 자료형들에 대해 빠르게 알아보자.

 

파이썬의 자료형-숫자, 문자열

 

1. 숫자형 (Number)

 

숫자의 형태로 이루어진 자료형이다.

 

정수형 

>>> a = 1234
>>> b = -38
>>> c = 0

 

실수형

>>> a = 1.28

 

8진수 / 16진수

8진수(Octal)는 숫자 0 + 알파벳 소문자 o 또는 대문자 O를 붙인다.

 

>>> 0o377
or
>>> 0O377

 

사칙연산

덧셈, 뺄셈, 곱셈, 나눗셈은 다음의 각 기호를 사용한다.

 

+ - * /

>>> a + b
>>> a - b
>>> a * b
>>> a / b

x의 y 제곱은 다음으로 표기한다.

 

a ** b

>>> a = 2
>>> b = 3
>>> a ** b
8

 

나눗셈 후 나머지를 반환하는 연산자 %

>>> 7 % 3
1

 

나눗셈 후 몫을 반환하는 연산자 //

>>> 5 // 
22

 

2. 문자열

 

 

문자로 만든 집합을 의미한다.

 

문자열 만드는 방법들

 

큰따옴표 (""), 작은따옴표 ('), 큰따옴표 연속 3개 ("""), 작은따옴표 연속 3개 (''')

 

문자열 안을 구분하는 방법 :

작은따옴표나 큰따옴표가 포함될 경우

 

다음처럼 큰따옴표로 둘러싸줘야 한다.

 

" python's exceptions "

 

 

반대로 문자열 안에 큰 따옴표가 오면?

 

print('"python is very fun.')"
python is very fun.
print('"python is very fun."')"
python is very fun."

 

큰따옴표와 달리,

작은따옴표 안의 큰따옴표는 문자열을 만드는 기호로 인식되지 않는다. 

 

작은따옴표와 큰따옴표를 문자열에 포함시키고 싶다면 백 슬래시(/)를 사용한다.

 

print("\"Python is very fun.\" she says.")
"Python is very fun." she says.

 

줄을 바꾸고 싶다면 (\n)을 사용한다.

 

이외 이스케이프(Escape) 문자들 정리

코드 설명
\n 문자열 안에서 줄을 바꿀 때 사용
\t 문자열 사이에 탭 간격을 줄 때 사용
\\ 문자 \를 그대로 표현할 때 사용
\' 작은따옴표(')를 그대로 표현할 때 사용
\" 큰따옴표(")를 그대로 표현할 때 사용
\r 캐리지 리턴(줄 바꿈 문자, 현재 커서를 가장 앞으로 이동)
\f 폼 피드(줄 바꿈 문자, 현재 커서를 다음 줄로 이동)
\a 벨 소리(출력할 때 PC 스피커에서 '삑' 소리가 난다)
\b 백 스페이스
\000 널 문자

문자열 연산

 

파이썬은 문자열을 더하거나 곱할 수 있다. 

파이썬만의 장점이다.

다음의 예제 코드들로 확인해 보자.

 

>>> head = "Python"
>>> tail = "is cool~!"
>>> head + tail'
Pythonis cool~!'
>>> head = "Python"
>>> head*3'
PythonPythonPython'

 

print("=" * 50)
print("Editor : Python")
print("Date : 04/02/2020")
print("=" * 50)
==================================================

Editor : Python

Date : 04/02/2020

==================================================

 

문자열 길이 구하기

>>> a = "The string is very long."
>>> len(a)
>>> 24

 

문자열 인덱싱 

 

다음과 같이 "python is very fun, you can do it." 문자열이 있다.

여기서 a[1] 을 입력하면, 인덱스 1번째 문자 배열의 문자가 출력된다. (참고로 파이썬의 문자 배열은 인덱스 0부터 시작한다.)

또한 a[-1]이라고 입력하면, 인덱스 0에서 -1 하니 배열의 마지막 문자인 "."를 출력한다.

        a = "python is very fun, you can do it."
        python is very fun, you can do it.
 Index: 01234567890123456789012...
        
a[1]

'y'

a[2]

't'

a[10]

'v'

a[11]

'e'

a[0]

'p'

a[-1]

'.'

a[-2]

't'

 

문자열 슬라이싱 예제

 

다음 예제는 포함된 문자열에서 원하는 문자열만 추출하는 예제이다.

 

>>> a = "python is very fun, you can do it."

>>> b = a[10] + a[11] + a[12] + a[13] + a[14] + a[15] + a[16] + a[17]

>>> b

'very fun'

 

다음 예제는 같은 결괏값으로 문자열 10부터 18까지를 추출하는 예제이다.

a[시작 번호 : 끝 번호]를 지정한다. 참고로 끝 번호는 추출해낼 문자열에서 제외된다.

 

>>> a[10:18]

>>> 'very fun'

 

 

다음 4개의 예제를 보자.

 

1. 끝 번호를 지정하지 않으면 위 예제처럼 나머지 문자열을 끝까지 추출된다.

2. 반대로  시작 번호를 지정하지 않으면 문자열의 처음부터 지정된 끝 번호까지 추출된다.

3. 시작 번호, 끝 번호를 아예 지정하지 않으면 배열 안의 모든 문자열이 추출된다.

4. 시작 번호 19번째부터의 문자열을 추출한다 : 마지막 문자열에서 -1은 제외하고 추출된다.

 

>>> a[10:]

>>> 'very fun, you can do it.'



>>> a[:10]

>>> 'python is '



a[:]

'python is very fun, you can do it.'



a[19:-1]

' you can do it'

 

슬라이싱을 활용한 문자열 나누기 예제

 

>>> a = "04052020By Python"

>>> date = a[:8]

>>> editor = a[8:]

>>> date

'04052020'

>>> editor

'By Python'

 

date변수는 문자열 a에서 처음부터 시작하여 끝 번호 8번째 기준까지 끊는다. 즉 8번째 인덱스에 해당하는 문자열은 포함되지 않는다.

editor변수는 문자열 a에서 시작 번호 8번째 이후부터 마지막까지의 문자열이 추출된다.

 

다음은 "tipo"라는 문자열을 "typo"로 예제이다.

 

>>> a = "tipo"

>>> a[:1]

't'

>>> a[2:]

'po'

>>> a[:1] + 'y' + a[2:]

'typo'

 

문자열의 인덱스 1번째 문자 i를 y로 수정해야 한다.

순서는 't'까지 자르고, 인덱스 2번째 문자 'y'를 삽입한 후 'po'를 또 한 번 잘라 차례로 붙이면 된다.

 

 

<문자열 포매팅 (Formating)>

 

다음 네 개의 예제들을 따라 해 보자.

 

숫자 값 대입

 

>>> "I baought %d masks." %2

'I baought 2 masks.

 

문자  값 대입

 

>>> "I baought %s masks." % "two"

'I baought two masks.'

 

숫자 값을 변수에 입력 후 대입

 

>>> num = 2

>>> "I baought %d masks." % num

'I baought 2 masks.'

 

숫자 값, 문자 값 두 개 이상의 변수에 입력 후 대입

>>> num = 2

>>> week = "14"

>>> "I bought %d masks in wk%s" % (num, week)

'I bought 2 masks in wk14'
코드 설명
%s 문자열(String)
%c 문자 1개(character)
%d 정수(Integer)
%f 부동소수(floating-point)
%o 8진수
%x 16진수
%% Literal % (문자 % 자체), 

 

※ % 문자열을 포함하고 싶다면, %d%% 로 써야 한다.

 

>>> "Sucess is %d%%." % 68

'Sucess is 68%.'

정렬 공백 예제

 

전체 길이가 20개인 문자열 공간 안에서 대입 문자 "hello"를 오른쪽 정렬하라는 의미다. 

>>> "%20s" % "hello"

'               hello'

 

반대로 왼쪽 정렬은 다음 예제와 같다.

 

>>> "%-20s" % "hello"

'hello               '

 

소수점 표현 예제

 

소수점 두 번째 자릿수까지 끊어 추출된다.

>>> "%0.2f" % 3.14232323

'3.14'

 

%20이 붙으면 20개인 문자열 공간에서 오른쪽 정렬하는 예제이다.

>>> "%20.2f" % 3.14232323

'                3.14'

 

<format 함수를 사용한 여러 가지 예제들>

 

format 함수를 사용하면 좀 더 간결하게 포맷 지정이 가능하다.

 

위에서 응용한 예제들을 응용해서 다음 예제들을 따라만 해봐도 쉽게 이해가 될 듯싶다.

 

>>> "Please check {0} failures" .format(2)

'Please check 2 failures'



>>> num = 2

>>> "Please check {0} failures" .format(num)

'Please check 2 failures'



>>> num = 2

>>> week = 14

>>> "I bought {0} masks in week {1}." .format(num,week)

'I bought 2 masks in week 14.'



>>> "I bought {num} masks in week {week}." .format(num=2,week=14)

'I bought 2 masks in week 14.'



>>> "I bought {0} masks in week {week}." .format(2,week=14)

'I bought 2 masks in week 14.'



>>> "{0:<20}".format("left")

'left                '



>>> "{0:>20}".format("right")

'               right'



>>> y=3.143232

>>> "{0:10.4f}".format(y)

'    3.1432'

 

<문자열 관련 함수들 따라 해 보기>

 

다음의 문자열 함수들은 문자열 처리 시 자주 사용되는 함수들이다. 

익혀두면 매우 유용할 것이다.

 

find / index :  위치 알려주기

>>> a = "Python is very easy"

>>> a.find('e')

11

>>> a.index('e')

11

 

단, 두 함수는 다음과 같은 차이점이 있다.

문자열에 찾으려는 문자가 없을 시 index는 오류가 발생한다.

 

>>> a.find('z')

-1

>>> a.index('z')

Traceback (most recent call last):

  File "<input>", line 1, in <module>

ValueError: substring not found

 

count  : 문자 개수 세기

 

>>> a = "issue"

>>> a.count('s')

2

 

join : 문자열 삽입

 

>>> "-".join('python')

'p-y-t-h-o-n'

 

upper / lower : 대/소문자 바꾸기

 

>>> a = "version"

>>> a.upper()

'VERSION'





>>> a="VERSION"

>>> a.lower()

'version'

 

lstrip / rstrip / strip : 좌/우/양쪽 공백 지우기

 

>>> a = " version "

>>> a.lstrip()

'version '



>>> a.rstrip()

' version'



>>> a.strip()

'version'

 

split : 문자열 바꾸기

 

>>> a = "date version 20.40.001"

>>> a.split()

['date', 'version', '20.40.001']





>>> b = "30:20:003"

>>> b.split(':')

['30', '20', '003']

이 블로그의 다른 글 보기

 

파이참 무료버전 간단한 설치 방법

지난 시간 파이썬 에디터는 어떤 걸 선택할지에 대해 살펴보았다. 파이썬 에디터는 어떤걸로? 파이썬 대화형 인터프리터는 간단한 구문을 작성하기에는 편리하다. 하지만 조금 더 전문적인 코

freernd.tistory.com

 

파이썬 에디터는 어떤걸로?

파이썬 대화형 인터프리터는 간단한 구문을 작성하기에는 편리하다. 하지만 조금 더 전문적인 코드를 작성하기를 원한다면 얘기가 많이 달라진다. 제법 유용하게 짠 코드가 인터프리터 창을 닫

freernd.tistory.com

 

댓글