숫자형, 문자열 자료형

soo-hyeon·2021년 1월 23일
0

파이썬

목록 보기
2/15

숫자형이란?

숫자형(Number)이란 숫자 형태로 이루어진 자료형으로, 우기가 이미 잘 알고 있는 것이다. 우리가 흔히 사용하는 123 같은 정수, 12.34 같은 실수, 드물게 사용하긴 하지만 8진수나 16진수 같은 것도 있다.

🔆 다음 표는 파이썬에서 숫자를 어떻게 사용하는지 간략하게 보여 준다.

숫자형은 어떻게 만들고 사용할까?

🖤 정수형

정수형(Integer)이란 말 그대로 정수를 뜻하는 자료형을 말한다. 다음 예는 양의 정수와 음의 정수, 숫자 0을 변수 a에 대입하는 예이다.

a = 123
a = -178
a = 0

🤍 실수형

파이썬에서 실수형(Floating-point)은 소수점이 포함된 숫자를 말한다. 다음은 실수를 변수 a에 대입하는 예이다.
컴퓨터식 지수 표현 방식으로 파이썬에서는 4.24e10 또는 4.24E10처럼 표현한다(e와 E 둘 중 어느 것을 사용해도 무방하다). 여기서 4.24E10은 4.2410의10승, 4.24e-10은 4.24 10의-10승을 의미한다.

a = 1.2
a = -3.45
a = 4.24E10
a = 4.24e-10

숫자형을 활용하기 위한 연산자

🧡 사칙연산

+, -, *, /

a = 3
b = 4
print(a + b)
print(a * b)
print(a / b)

💛 x의 y제곱을 나타내는 ** 연산자

a = 3
b = 4
print(a ** b)

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

print(7 % 3)
print(3 % 7)

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

print(7 // 3)

문자열이란?

문자열(String)이란 문자, 단어 등으로 구성된 문자들의 집합을 의미한다. 예를 들어 다음과 같은 것들이 문자열이다.
"Life is too short, You need Python"
"a"
"123"
위 문자열 예문을 보면 모두 큰따옴표(" ")로 둘러싸여 있다. 숫자라도 따옴표로 둘러싸여 있으면 모두 문자열이라고 보면 된다.

문자열은 어떻게 만들고 사용할까?

위 예에서는 문자열을 만들 때 큰따옴표(" ")만을 사용했지만 이 외에도 문자열을 만드는 방법은 3가지가 더 있다. 파이썬에서 문자열을 만드는 방법은 총 4가지이다.

🔴 큰따옴표(")로 양쪽 둘러싸기
"Hello World"

🟠 작은따옴표(')로 양쪽 둘러싸기
'Python is fun'

🟡 큰따옴표 3개를 연속(""")으로 써서 양쪽 둘러싸기
"""Life is too short, You need python"""

🟢 작은따옴표 3개를 연속(''')으로 써서 양쪽 둘러싸기
'''Life is too short, You need python'''

문자열 안에 작은따옴표나 큰따옴표를 포함시키고 싶을때 또는 여러 줄인 문자열을 줄을 바꾸기 위한 이스케이프 코드 \n를 쓰지 않고 변수에 대입하고 싶을 때를 위해서 4가지의 방법들이 존재한다.

# 문자열에 작은따옴표(') 포함시키기
food = "Python's favorite food is perl"
# 문자열에 큰따옴표(") 포함시키기
say = '"Python is very easy." he says.'
# 연속된 작은따옴표 3개(''') 또는 큰따옴표 3개(""") 사용하여 여러 줄인 문자열 변수에 대입하기
multiline = '''
Life is too short
You need python'''

multiline2 = """ 
Life is too short
You need python"""

print(food)
print(say)
print(multiline)
print(multiline2)

🔆 이스케이프 코드란?
문자열 예제에서 여러 줄의 문장을 처리할 때 백슬래시 문자와 소문자 n을 조합한 \n 이스케이프 코드를 사용했다. 이스케이프 코드란 프로그래밍할 때 사용할 수 있도록 미리 정의해 둔 "문자 조합"이다. 주로 출력문을 보기 좋게 정렬하는 용도로 사용한다.

문자열 연산하기

파이썬에서는 문자열을 더하거나 곱할 수 있다. 다른 언어에서는 쉽게 찾아볼 수 없는 재미있는 기능으로, 우리 생각을 그대로 반영해 주는 파이썬만의 장점이라고 할 수 있다.

#문자열 더해서 연결하기(Concatenation)
head = "Python"
tail = " is fun!"
print(head + tail)

#문자열 곱하기
a = "Python"
print(a * 2)

#문자열 곱하기 응용
print("=" * 10)
print("My Program")
print("=" * 10)

문자열 길이 구하기(len 함수)

문자열의 길이는 다음과 같이 len 함수를 사용하면 구할 수 있다. len 함수는 print 함수처럼 파이썬의 기본 내장 함수로 별다른 설정 없이 바로 사용할 수 있다.

a = "Life is too short"
print(len(a))

문자열 인덱싱과 슬라이싱

인덱싱(Indexing)이란 무엇인가를 "가리킨다"는 의미이고, 슬라이싱(Slicing)은 무엇인가를 "잘라낸다"는 의미이다.

💙 문자열 인덱싱이란?

a[번호]는 문자열 안의 특정한 값을 뽑아내는 역할을 한다. 이러한 작업을 인덱싱이라고 한다.
💥 파이썬은 0부터 숫자를 센다 💥

a = "Life is too short"
print(a[2], a[5], a[12], a[13])

# a[-1]은 뒤에서부터 세어 첫 번째가 되는 문자를 말한다.
a = "Life is too short"
print(a[-1], a[-3], a[-5], a[-5])

💜 문자열 슬라이싱이란?

a[시작 번호:끝 번호]는 문자열 안의 특정 부분의 값을 뽑아내는 역할을 한다. 이러한 작업을 슬라이싱이라고 한다.

# a[시작 번호:끝 번호]를 지정할 때 끝 번호에 해당하는 것은 포함하지 않는다.
a = "Life is too short, You need Python"
print(a[0:4])

# 공백 또한 문자와 동일하게 취급된다.
print(a[0:6])

# a[시작 번호:끝 번호]에서 끝 번호 부분을 생략하면 시작 번호부터 그 문자열의 끝까지 뽑아낸다.
print(a[19:])

# a[시작 번호:끝 번호]에서 시작 번호 부분을 생략하면 문자열의 처음부터 끝 번호까지 뽑아낸다.
print(a[:17])

# 슬라이싱에서도 인덱싱과 마찬가지로 마이너스(-) 기호를 사용할 수 있다.
# a[19:-7]이 뜻하는 것은 a[19]에서부터 a[-8]까지를 말한다.
print(a[19:-7])

문자열 포매팅

# 1. 숫자 바로 대입
print("I eat %d apples." %3)

# 2. 문자열 바로 대입
print("I eat %s apples." %"five")

# 3. 숫자 값을 나타내는 변수로 대입
number = 3
print("I eat %d apples." % number)

# 2개 이상의 값 넣기
number2 = 10
day = "three"
print("I ate %d apples. so I was sick for %s days." %(number2, day))

🔆 문자열 포맷 코드

# 문자열 안에 %를 쓰고 싶다면 %%로 써야한다.
print("Error is %d%%." %98)

# 정렬과 공백
# 오른쪽 정렬
print("%10s" %"hi")
# 왼쪽 정렬
print("%-10s" %'hi')

# 소수점 표현하기
print("%0.4f" % 3.42134234)

문자열 관련 함수들

문자열 자료형은 자체적으로 함수를 가지고 있다. 이들 함수를 다른 말로 문자열 내장함수라 한다. 이 내장 함수를 사용하려면 문자열 변수 이름 뒤에 '.'를 붙인 다음에 함수 이름을 써주면 된다.

# 문자 개수 세기(count)
a = "hobby"
print(a.count('b'))

# 위치 알려주기1(find)
b = "Python is the best choice"
print(b.find('b'))
print(b.find('k')) # 만약 찾는 문자나 문자열이 존재하지 않는다면 -1을 반환한다.

# 위치 알려주기2(index)
c = "Life is too short"
print(c.index('t'))
print(c.index('k')) # 만약 찾는 문자나 문자열이 존재하지 않는다면 오류를 발생시킨다.

# 문자열 삽입(join)
print(",".join('abcd'))

# 공백 지우기(strip)
d = "    hi   "
print(d.strip())

# 문자열 바꾸기(replace)
e = "Life is too short"
print(e.replace("Life", "Your leg")

# 문자열 나누기(split)
f = "Life is too short"
print(f.split())
g = "a:b:c:d"
print(g.split(':'))

❗ split 함수는 f.split() 처럼 괄호 안에 아무 값도 넣어 주지 않으면 공백(스페이스, 탭, 엔터 등)을 기준으로 문자열을 나눈어 준다. 만약 g.split(' : ')처럼 괄호 안에 특정 값이 있을 경우에는 괄호 안의 값을 구분자로 해서 문자열을 나누어 준다.

0개의 댓글