본문 바로가기
Python/기초 과정

03 파이썬 문자형 특징1

by To올라운더 2023. 6. 10.
반응형

앞선 시간에 각 자료형별 선언 방법에 대해 알아봤고,

2023.06.09 - [IT 배우기/Python] - 02. 파이썬 자료형

 

02. 파이썬 자료형

우리는 앞에서 필요한 값들을 변수에 저장하는 방법을 배웠다. 2023.06.06 - [IT 배우기/Python] - 01. 파이썬 변수편 01. 파이썬 변수편 0. 이해보단 수긍... 변수에 앞서 2가지만 깊히 생각하지 않고 이렇

to-all-rounder.tistory.com

오늘은 해당 자료형들이 어떤 연산이나 함수를 가지고 있는지 확인해보겠다.

 

[1] 문자형(string)

문자형은 작은 따옴표와 큰따옴표를 이용하여 변수 값을 지정할 수 있다.

그런데 책이나 인터뷰 등이 적힌 글을 보면 작은 따옴표와 큰 따옴표는 의미를 가지고 있다.

'나는 할 수 있다.' 와 "나는 할 수 있다." 처럼 사용하고자 하는 

 

코딩에서도 위와 같이 작은 따옴표와 큰 따옴표를 사용해야 할 경우가 생기는데,

원하는 특수문자를 표기할 수 있는 몇 가지 방법이 있다.

반응형

 

 

1. 작은 따옴표, 큰 따옴표 혼용하는 방법

  - 문자를 출력하기 위해 작은 따옴표와 큰 따옴표를 혼용할 수 있다보니, 

    반대로 두가지를 혼용해서 표기할 수 있다.

print("이것은 '작은 따옴표'를 표기하는 방법입니다.") # 큰 따옴표로 감싸기 / 작은 따옴표 출력
print('이것은 "큰 따옴표"를 표기하는 방법입니다.') # 작은 따옴표로 감싸기 / 큰 따옴표 출력

2. 탈출문자를 사용하는 방법

  - 탈출문자(escape character)를 이용하는 방법

  - 역슬러쉬('\') 를 이용하면 작은 따옴표와 큰 따옴표를 혼용하지 않아도 하나로 처리할 수 있다.

    이와 같이 역슬러쉬를 포함한 문자를 탈출문자라고 부른다.

  - 단순히, 사용하고자 하는 따옴표와 양끝의 따옴표를 동일하게 사용하면 SyntaxError가 발생한다.

    VSCode의 색상이 다른 부분을 보면 알 수 있듯이 흰색으로 표기된 부분에 대한 정의가 되지 않기 때문인데

   해당 방법을 개선하기 위해서 따옴표 앞에 역슬러쉬를 추가하면 

print('이것은 \'작은 따옴표\'를 표기하는 방법입니다.') # 역슬러쉬를 이용한 작은 따옴표 출력
print("이것은 \"큰 따옴표\"를 표기하는 방법입니다.") # 역슬러쉬를 이용한 큰 따옴표 출력

   정상적으로 결과가 출력됨을 알 수 있다.

- 이러한 탈출문자는 작은 따옴표와 큰 따옴표를 입력하기 위한 기능 외에도

  다른 기능을 수행하기 위한 탈출문자도 있는데

  사용방법은 역슬러쉬(\) + 해당 문자 이다.

탈출문자 기    능
\' 작은 따옴표 입력
\" 큰 따옴표 입력
\\ 역슬러쉬(\) 입력, 'C:\Study' 처럼 경로를 입력할 경우 사용될 수도 있으나,
해당 작업이 반복될 경우 번거롭기 때무에 f string 또는 r string을 이용한다.
\n 줄 바꿈(enter 키와 동일)
\t 탭 입력(tab 키와 동일)
print('하나\\둘\\셋') # 탈출문자(\\)를 이용한 역슬러쉬 출력
print('하나\n둘\n셋') # 탈출문자(\n)를 이용한 엔터 출력
print('하나\t둘\t셋') # 탈출문자(\t)를 이용한 tab 출력

 

 3. 문자형 연산

 - 더하기(+)와 곱하기(*) 같은 연산은 숫자에만 사용하는 것 같지만,

   파이썬에서는 문자에도 사용할 수 있다.

str1 = '가'
str2 = '나'
print(str1 + str2)
print(str1 * 10)

   선언된 변수를 연결하거나 반복해서 출력할 수 있는데,

  유의할 것

  1) 같은 자료형일 때(str + str) 또는 숫자형(int + int / int 대신 float는 가능) 일 때 연산을 할 수 있다.

str1 = '20' # 작은 따옴표로 인한 문자형 20
str2 = '30' # 작은 따옴표로 인한 문자형 30
int1 = 20 # 숫자형으로 선언된 20
print(type(str1)) # 결과 값 str
print(type(str2)) # 결과 값 str
print(type(int1)) # 결과 값 int
print(str1 + str2)
print(str1 + int1)

 같은 문자형인 str1과 str2의 더하기(+) 연산은 정상적으로 출력되었으나,

 문자형과 숫자형의 str1과 int1의 더하기(+)는 에러가 발생한다.

 

2) 문자열로 표기된 숫자들이다.

  - 이런 숫자들은 코딩을 처음 접하면 숫자로 오인하기 쉽다.

    하지만 숫자가 아닌 문자이며,

    사용자에게서 변수를 받는 내장함수 input을 이용할 경우에도 숫자형가 아닌 문자형이다. 

str1 = '20' # 작은 따옴표로 인한 문자형 20
int1 = 20 # 숫자형으로 선언된 20
print(type(str1)) # 결과 값 str
print(type(int1)) # 결과 값 int
age = input('나이를 입력해주세요.') # 입력 값 15
print(age) # 결과 값 15
print(type(age)) # 결과 값 str

변수 선언은 한번에 2개 이상도 같이 할 수 있는데, 콤마를 이용하면 된다.

아래 처럼 str1과 str2를 한번에 선언할 수 있는데,

선언과 더불어 유의해서 볼 부분은 자료형에 따른 연산 결과이다.

 str1 + str2 의 결과는 두 변수의 문자가 연결된 2030 으로 나타나지만

 int1 + int2 의 결과는 두 변수의 합인 50으로 나타난다.

str1, str2 = '20', '30' # 작은 따옴표로 인한 문자형 20, 30
int1, int2 = 20, 30 # 숫자형으로 선언된 20, 30
print(str1+str2) # 결과 값 2030
print(int1+int2) # 결과 값 50

그럼 숫자형으로 된 변수를 문자형으로 바꾸고 싶을 때는 어떻게 할 수 있을까?

str로 해당 변수를 감싸주면 된다.

int1 = 20
print(type(int1)) # int
print(type(str(int1))) # str
print(type(int1)) # int
str1 = str(int1) 
print(type(str1)) # str
int1 = str(int1)
print(type(int1)) # str

유의할 점은 3번 라인과 4번 라인이다.

int로 선언된 변수 int1을 3번 라인에서 str로 변경해서 출력을 하더라도 

해당 결과는 출력을 위해 int1 변수의 값을 str로 바꿨을 뿐, 

4번 라인에서 보듯이 int1 변수는 그대로 숫자형으로 남아 있다. 

변수의 종류를 바꾸기 위해선 5번 라인처럼 별도의 변수로 선언을 해주거나

7번 라인처럼 해당 변수를 직접 변경하여 선언을 해야 자료형이 변경된다.

 

4. 문자 값 비교

수학에서 같다는 의미로 등호('=')를 사용하나,

파이썬에서 등호는 변수 선언 시 사용한다는 것을 배웠다.

그럼 문자가 또는 값이 같은지 확인을 하는 방법은 무엇이 있을까?

 

1) 등호 2개('==')를 이용하는 방법이다.

   - 아직 배우지 않았지만 뒤에 다룰 조건문(if)와 등호 2개('==')를 통해

     두 변수의 값이 같은지 비교할 수도 있고,(5, 10, 15 라인)

    - if와 in 을 이용하여 해당 내용을 포함하고 있는지 확인할 수도 있다.(20라인)

str1 = '대한민국'
str2 = '대한민국'
str3 = '대한민국 만세'

if str1 == str2:
    print('변수 str1과 변수 str2은 같은 값을 가지고 있습니다.')
else: 
    print('변수 str1과 변수 str2은 다른 값을 가지고 있습니다.')

if str1 == str3:
    print('변수 str1과 변수 str3은 같은 값을 가지고 있습니다.')
else: 
    print('변수 str1과 변수 str3은 다른 값을 가지고 있습니다.')

if str1 == str3[:4]:
    print('변수 str1과 변수 str3은 같은 값을 가지고 있습니다.')
else: 
    print('변수 str1과 변수 str3은 다른 값을 가지고 있습니다.')

if str1 in str3:
    print('변수 str3은 변수 str1의 내용을 포함하고 있습니다.')
else: 
    print('변수 str3은 변수 str1의 내용을 포함하지 않습니다.')

알려주고 싶은 기능들이 더 많아지만

한번에 너무 많은 양을 다루지 않고 다음 포스팅(문자형2)에서 마저 다뤄보겠다.

반응형

'Python > 기초 과정' 카테고리의 다른 글

05 파이썬 문자형 특징3  (1) 2023.06.11
04 파이썬 문자형 특징2  (0) 2023.06.10
02. 파이썬 자료형  (2) 2023.06.09
01. 파이썬 변수편  (0) 2023.06.06
파이썬 코딩 시작(코딩 보다 조금 앞선 intro)  (0) 2023.06.06