본문 바로가기

programming/python

[ python 친해지기 #3 ] 파이썬 자료형 1탄 (숫자, 문자열)

[ python 친해지기 #3 ] 파이썬 자료형 1탄 (숫자, 문자열)

 

안녕하세요. 심심한 코딩쟁이입니다.

 

파이썬 친해지기 세 번째 시간으로 파이썬의 다양한 자료형에 대해 알아보겠습니다.

 

python-logo
파이썬 로고


1. 숫자

 

숫자에는 다양한 종류가 존재하는데 우리가 파이썬에서 다뤄볼 유형은 다음과 같습니다.

 

정수, 실수, 8진수, 16진수

 

먼저 정수의 사용법부터 알아봅시다.

 

정수형 (int)

 

변수 x 에 양의 정수, 음의 정수, 0 을 차례대로 대입해 보겠습니다.

 

x = 20230101
x = -20230101
x = 0
print(type(x))

# 출력 결과
<class 'int'>

 

실수형 (float)

 

변수 x 에 양의 실수, 음의 실수를 대입해 보겠습니다.

 

# 실수의 일반적인 소수점 표현 방식
x = 2023.0101
x = -2023.0101

# 실수의 지수 표현 방식
x = 2.0230101E3
x = -2020201.01e-3
print(type(x))

# 출력 결과
<class 'float'>

 

지수 표현 방식에 대해서 간단히 알아보자면

 

수수점 표현인 2023.0101을 2.0230101E3 또는 2.0230101e3 으로 표현할 수 있습니다.

 

E 또는 e 를 사용할 수 있는데 이것의 뜻은 다음과 같습니다.

 

2.023e3은 2.023 * 1010을 의미하고 2.023e-3은 2.023 * 10-10을 의미합니다.

 

 

8진수, 16진수

 

# 8진수
x = 0o117
x = 0O117
print(type(x))

# 출력 결과
<class 'int'>

# 16진수
x = 0x9af
x = 0xABC
print(type(x))

# 출력 결과
<class 'int'>

 

간단히 설명하자면 8진수는 0~7까지의 수만 존재, 16진수는 0~9와 a~f 까지를 수로 생각한다고 생각하시면 됩니다.

 

연산자

 

우리의 일상에서 흔히 볼 수 있는 사칙연산( + , - , * , / ) 은 파이썬에서도 똑같이 사용됩니다.

 

a = 5
b = 2

# 덧셈
c = a + b
print(c)
# 출력 결과
7

# 뺄셈
c = a - b
print(c)
# 출력 결과
5

# 곱셈
c = a * b
print(c)
# 출력 결과
10

# 나눗셈
c = a / b
print(c)
# 출력 결과
2.5

 

제곱과 거듭제곱 연산자

 

x의 y제곱을 표현하기 위해 파이썬에는 다음과 같은 방법이 있습니다.

 

 ** 연산자를 사용하거나 내장함수인 pow() 를 사용합니다.

 

x = 5
y = 2

# x의 y제곱
z = x ** y
print(z)
# 출력 결과
25

# x의 y제곱
print(pow(x,y))
# 출력 결과
25

 

나머지 연산자

 

큰 수에서 작은 수를 나눈 뒤 나머지의 값을 알고 싶을때 연산자 % 를 사용합니다.

 

x = 100
y = 7

# 100을 7로 나눴을때 나머지를 알고싶다면
z = x % y
print(z)
# 출력 결과
2

 

몫 연산자

 

나눗셈에서 몫 만을 알고싶을 경우  // 연산자를 사용합니다.

 

x = 100
y = 8

# 나눗셈
z = x / y
print(z)
# 출력 결과
12.5

# 나눗셈에서 몫만 반환
z = x // y
print(z)
# 출력 결과
12

 

반응형

2. 문자열

 

단어나 문자 등으로 구성된 문자들을 문자열이라고 칭한다.

 

예를 들자면

 

'안녕하세요'
'안abc녕'
'심심한123'

 

위에 있는 3개의 문자열을 보면 작은따옴표에 감싸져 있다. 문자열의 특징이 바로 이것이다.

 

문자열 만들기

 

파이썬에서 문자열을 만드는 방법은 4가지이다.

 

  • 큰따옴표 사용 "문자열"
  • 작은따옴표 사용 '문자열'
  • 큰따옴표 3개 사용 """문자열"""
  • 작은따옴표 3개 사용 '''문자열'''
str1 = "전 문자열 1 입니다."
str2 = '난 문자열 2 야.'
str3 = """전 문자열 3
입니다"""
str4 = '''난 string
	4
야.'''


print(str1)
# 출력 결과
전 문자열 1 입니다.

print(str2)
# 출력 결과
난 문자열 2 야.

print(str3)
# 출력 결과
전 문자열 3
입니다.

print(str4)
# 출력 결과
난 string
	4
야.

 

따옴표 3개를 사용할 때는 위처럼 여러 줄인 문자열을 만들 때 사용하시면 좋습니다.

 

이스케이프 코드

 

문자열 안에서 문자가 아닌 다른 역할을 하도록 미리 정의해둔 코드들을 의미합니다.

 

문자열 안에 따옴표를 넣고 싶을 때나 줄을 바꾸고 싶을 때 주로 사용됩니다.

 

대표적인 이스케이프 코드 입니다.

 

 \"  문자열에 큰따옴표 문자 표현

 \'  문자열에 작은따옴표 문자 표현

 \n  문자열 안에서 줄 바꿈

 \t  문자열 안에서 탭 간격

 \\  문자열에 백슬래시 문자 표현

 

 

문자열 연산

 

앞에서 숫자형을 다루면서 사칙연산을 살펴보았는데 그것과 비슷한 동작을 합니다.

 

# 문자열끼리의 덧셈
a = "파이썬 "
b = "친해지기"

print(a+b)
# 출력 결과
파이썬 친해지기

# 문자열 곱셈
c = "심심"

print(c*10)
# 출력 결과
심심심심심심심심심심심심심심심심심심심심

 

문자열 길이 len()

 

문자열의 길이를 알고 싶을 때  len()  함수를 사용합니다.

 

str = "이 문자열은 길이가 얼마나 될까?"

print(len(str))
# 출력 결과
18

 

문자열 내 특정 문자 개수 세기 count()

 

str = "abbcccddddeeeeeffffff"

print(str.count('e'))
# 출력 결과
5

 

문자열 삽입 join()

 

a = ','
b = "1234"

print(a.join(b))
# 출력 결과
1,2,3,4

 

문자열 바꾸기 replace()

 

str = "나는 심심한 코딩쟁이입니다."
str = str.replace("나는","저는")

print(str)
# 출력 결과
저는 심심한 코딩쟁이입니다.

 

문자열 내 위치 찾기 find(), index()

 

str = "가나다라마바사"

# find() 사용 예시
print(str.find("가"))
# 출력 결과 0은 "가"가 0번째에 위치해 있음을 의미
0
print(str.find("하"))
# 출력 결과 -1은 "하"가 문자열 내에 없음을 의미
-1

# index() 사용 예시
print(str.index("가"))
# 출력 결과 0은 "가"가 0번째에 위치해 있음을 의미
0
print(str.index("하"))
# 출력 결과 에러 발생
Traceback (most recent call last):
  File "d:\symxsym\test.py", 
line 16, in <module>
    print(str.index("하"))
ValueError: substring not found

 

문자열 공백 지우기 strip(), lstrip(), rstrip()

 

str = "    공백지우기    "

# 양쪽 공백 모두 지우기
print("확인"+str.strip()+"확인")
# 출력 결과
확인공백지우기확인

# 왼쪽 공백 모두 지우기
print("확인"+str.lstrip()+"확인")
# 출력 결과
확인공백지우기    확인

# 오른쪽 공백 모두 지우기
print("확인"+str.rstrip()+"확인")
# 출력 결과
확인    공백지우기확인

 

문자열 소문자를 대문자로, 대문자를 소문자로 바꾸기 upper(), lower()

 

str1 = "abc"
str2 = "ABC"

# 소문자를 대문자로
print(str1.upper())
#출력 결과
ABC

# 대문자를 소문자로
print(str2.lower())
#출력 결과
abc

 

문자열 나누기 split()

 

split 함수는 괄호 안에 아무것도 입력하지 않으면 공백을 기준으로 문자열을 나누어 리스트형으로 반환해 줍니다.

 

괄호에 특정 문자를 넣게 되면 그 문자를 기준으로 문자열을 나누어 리스트로 반환합니다.

 

str = "문자열을 나눠보는 예제의 문자열"
list = str.split()

# 출력 결과
print(list)
['문자열을', '나눠보는', '예제의', '문자열']

str2 = "사과,바나나,메론,오렌지"
list2 = str2.split(',')

# 출력 결과
print(list2)
['사과', '바나나', '메론', '오렌지']

 

문자열 포매팅

 

문자열을 사용함에 있어 자주 변하는 값을 쉽게 바꾸기 위해 사용하는 유용한 방식으로

 

 %  기호를 사용하는 방식
 format 메서드 를 사용하는 방식
 f  문자열을 사용하는 방식

 

총 3가지의 방식이 존재합니다.

 

 

#################################
# %기호 사용 방식
# %d 정수, %f 실수, %s 문자열
#################################

str1 = "올해는 %d년 입니다." % 2023 
str2 = "저는 %s이고 %d살 입니다." % ("김철수", 20) # 여러개의 값이 필요할 경우 소괄호로 감쌈

print(str1)
print(str2)
# 출력 결과
올해는 2023년 입니다.
저는 김철수이고 20살 입니다.

#################################
# format 메서드 사용 방식
#################################

str1 = "올해는 {}년 입니다.".format(2023)
str2 = "저는 {}이고 {}살 입니다.".format("김철수", 20)
str3 = "저는 {name}이고 {age}살 입니다.".format(age = 20, name = "김철수") # 인수의 이름을 지정해주는 방식

print(str1)
print(str2)
print(str3)
# 출력 결과
올해는 2023년 입니다.
저는 김철수이고 20살 입니다.
저는 김철수이고 20살 입니다.

#################################
# f 문자열 사용 방식
# 파이썬 3.6 부터 사용가능
#################################

name = "김철수"
age = 20

str = f"저는 {name}이고 {age}살 입니다."

print(str)
# 출력 결과
저는 김철수이고 20살 입니다.

 


여기까지 파이썬 친해지기 세 번째 시간이었습니다.

 

오늘은 파이썬의 자료형 1탄으로 숫자와 문자열에 대해 알아보았습니다.

 

숫자형과 문자열을 다루는 다양한 방식들은 앞으로 개발하실 때 유용하게 쓰일 겁니다.

 

새해에도 꾸준하게 열심히 무엇인가를 하고 있다면 응원하겠습니다.

 

새해 복 많이 받으세요.

 

반응형