지식이 늘었다/Python

[Python] 파이썬 - 자료형과 문자열

moneydeveloper 2022. 9. 28. 13:02
반응형

프로그래밍에서는 프로그램이 처리할 수 있는 모든 것을 자료(data)라고 부릅니다.

이번에는 자료가 무엇인지? 자료를 처리하는 방법에 대한 개괄적인 것과 많이 쓰이는 문자열 자료형에 대해서 알아보겠습니다.

 

목차
1. 자료형
 1) 자료형 확인하기

2. 문자열
 1) 큰따옴표(" ")로 문자열 만들기
 2) 작은따옴표(' ')로 문자열 만들기
 3) 문자열 내부에 따옴표('," ) 넣기
 4) 이스케이프 문자를 사용하여 문자열 만들기
 5) 문자열 연산자

 

1. 자료형


개발자들이 쉽게 사용할 수 있도록 기능과 역할에 따라서 자료를 구분했습니다.

가장 기본적인 자료형으로는 문자열, 숫자, 불이 있습니다.

 

  • 문자열 : 메일 제목, 메시지 내용 등 ex ) "안녕하세요", "Hello World"
  • 숫자 : 주식의 가격, 조회수 등 ex ) 54800, 120
  • 불 : HTS 로그인 상태 등 ex ) True, False

 

이러한 기본 자료형을 조합해서 새로운 자료형도 만들 수 있습니다.

예를 들어 숫자를 세 개 조합 하면 '2022.09.28' 처럼 날짜를 표현하는 자료형이 만들어집니다.

 

1) 자료형 확인하기

파이썬에서 자료의 형식을 확인 할 때는 type() 함수를 사용합니다. 함수의 괄호 내부에 자료를 넣으면 그 자료가 어 떤 자료형을 가지고 있는지 확인할 수 있습니다.

print(type("안녕하세요")) # <class 'str'>
print(type(54800)) # <class 'int'>

class str 은 문자열을 의미합니다.

class int 는 정수를 나타냅니다.

 

2. 문자열


1) 큰따옴표(" ")로 문자열 만들기

문자열은 문자들을 큰따옴표(")로 감싸서 만듭니다. 아래는 간단하게 문자열을 만들고 출력하는 코드입니다.

print("코스피 망했나요?") # 코스피 망했나요?

 

2) 작은따옴표(' ')로 문자열 만들기

작은따옴표(')로도 문자열을 만들 수 있습니다. 앞서 예제에서 작은 따옴표로 코드를 변경해서 확인해보겠습니다.

print('코스피 망했나요?') # 코스피 망했나요?

실행 결과를 보면 두가지 모두 똑같은 결과를 출력합니다. 하지만 이렇게 두가지 방식으로 나눈 이유가 있습니다.

 

3) 문자열 내부에 따옴표('," ) 넣기

위에서 배운대로 큰따옴표 안에 원하는 문자열을 적어봅시다. 

print(""코스피" 망했나요?") # 코스피 망했나요?

해당 코드를 입력하고 실행하면 구문 오류가 발생합니다. 

SyntaxError : invalid syntax

그러면 큰 따옴표를 문자열 내부에 넣고 싶으면 어떻게 해야 할까요? 매우 간단합니다. 작은 따옴표로 문자열을 만들면 됩니다. 작은 따옴표를 문자열 내부에 넣고 싶으면 큰 따옴표로 문자열을 만들면 됩니다.

 

print('"코스피" 망했나요?') # "코스피" 망했나요?
print("'코스피' 망했나요?") # '코스피' 망했나요?

 

4) 이스케이프 문자를 사용하여 문자열 만들기

하지만 위에 방식은 경우에 따라 문자열을 만드는 방법이 다르기때문에 헷갈릴 수가 있습니다. 어떤 방법으로 문자열을 만들더라도 쉽게 따옴표를 넣을 수 있는 방법이 있습니다. '이스케이프 문자'를 사용하는 것입니다. 

이스케이프 문자는 역슬래시(\) 기호와 함께 조합해서 사용하는 특수한 문자를 의미합니다. 참고로 한국어 키보드에서 \는 원화 기호(₩) 입니다.

 

다음과 같이 \와 함께 사용하면 '단순한 따옴표'로 인식합니다.

  • \" : 큰따옴표를 의미합니다.
  • \' : 작은따옴표를 의미합니다.
print("\"코스피\" 망했나요?") # "코스피" 망했나요?
print('\'코스피\' 망했나요?') # '코스피' 망했나요?

이외에도 다양한 이스케이프 문자가 있습니다.

  • \n : 줄바꿈을 의미합니다.
  • \t: 탭을 의미합니다. 
print("코스피\n망했나요?") # 코스피->망했나요?
print('코스피\t망했나요?') # 코스피     망했나요?

이런 이스케이프 문자를 통해 문자열들을 쉽게 표현 할 수 있습니다. 

 

5) 문자열 연산자

문자열에서는 문자열 연결 연산자(+), 문자열 반복 연산자(*), 문자열 선택 연산자([ ]), 문자열 범위 선택 연산자([:]) 가 있습니다. 이러한 연산자를 통해 쉽게 문자열을 제어할 수 있습니다. 

 

a. 문자열 연결 연산자 : +

문자열에는 +연산자로 문자열 연결 연산을 적용 할 수 있습니다.

 

"코스피" + "망했나요" = "코스피망했나요"

 

+ 기호를 사용하므로 우리가 알고 있는 '더하기'라고 생각 할 수 있지만 내부적으로 완전하 다른 수행을 하는 연산자 입니다.

print("코스피"+"망했나요")  # 코스피망했나요

자 그럼 "코스피 3000 가자" 를 출력할 의도로 문자열 연결 연산자(+) 를 사용해보겠습니다

print("코스피" + 3000 + "가자")

다음과 같은 오류 메시지가 나타납니다.

에러를 확인해 보면 문자끼리만 연결 할 수 있다는 의미입니다.

따라서 문자열은 무조건 문자열끼리 + 연산자를 사용해서 연결해야 합니다. 숫자라 하더라도 문자열과 함께 + 연산하려면 큰따옴표를 붙여 문자열로 인식시켜야만 합니다.

print("코스피" + "3000" + "가자")
# 코스피3000가자

문자열 연결 연산자는 경우에 따라서 많이 사용되므로 꼭 익혀두어야 합니다.

 

b. 문자열 반복 연산자: *

문자열을 숫자와 * 연산자로 연결하면 문자열을 반복할 수 있습니다. 사용 방법은 아래와 같이 문자열*숫자 순으로 입력해도 되고, 숫자*문자열 과 같이 순서를 바꿔서 입력해도 됩니다. 

print(3 * "코스피 나락간다 살려줘")
print("코스피 나락간다 살려줘" * 3)
#코스피 나락간다 살려줘코스피 나락간다 살려줘코스피 나락간다 살려줘

 

c. 문자 선택 연산자(인덱싱): []

문자 선택 연산자는 문자열 내부의 문자 하나를 선택하는 연산자 입니다. 파이썬의 경우 제로인덱스를 기반으로 사용하는 언어입니다. 즉 문자열의 위치를 셀 때 가장 첫번째 인덱스가 0 이고 두번째 인덱스가 1 이 됩니다. 

print("환율 돌았다"[0])
# 환

 

d. 문자열 범위 선택 연산자(슬라이싱): [:]

문자열의 특정 범위를 선택할 때 사용하는 연산자도 있습니다. 첫번째 문자 부터 세번째 문자까지 선택 한다든지, 

두번째 문자 부터 끝까지 선택한다든지 범위를 지정하는 것입니다. 범위는 대괄호 안에 위치를 콜론(:) 으로 구분해서 지정합니다.

print("코스피 살려주세요"[0:4])
#코스피

범위 지정시에 프로그래밍 언어에 따라서 여러가지 유형이 있는데 파이썬의 경우 '마지막 숫자를 포함하지 않음' 으로 적용됩니다. 고로 [0:4] 는 0,1,2,3 의 인덱스를 선택하여 위와 같이 표시됩니다. (3 인덱스는 공백입니다.)

 

또, 대괄호 안에 넣는 숫자 둘 중 하나를 생략하여 다음과 같은 형태로도 사용할 수 있습니다.

뒤의 값을 생략할 때는 자동으로 가장 최대 위치, 앞의 값을 생략할 때는 가장 앞쪽의 위치 까지 지정합니다.

print("코스피 살려주세요"[:4])
#코스피

print("코스피 살려주세요"[4:])
#살려주세요
반응형