TIL 4 데이터 타입 (문자열)

CastleQ·2021년 4월 23일
0

python에 진심인 편

목록 보기
4/8
post-thumbnail

문자열(String)이란?

문자열(String)이란 문자, 단어 등으로 구성된 문자들의 집합을 의미한다.
예를 들어 다음과 같은 것들이 문자열이다.

"Life is too short, You need Python"
"a"
"123"

위 문자열 예문을 보면 모두 큰따옴표(" ")로 둘러싸여 있다.
"123은 숫자인데 왜 문자열이지?"라는 의문이 드는 이도 있을 것이다.
따옴표로 둘러싸여 있으면 적어도 파이썬에서는 모두 문자열이라고 보면 된다.

참조자료 : 점프 투 파이썬 - 02-2 문자열 자료형

문자열을 사용하는 이유?

파이썬에서 문자열을 왜 사용할까? 이런 생각이 들어서 검색을 해보다가..
뭔가 내 질문이 이상하다는 걸 깨달았다.

우리가 쓰는 언어를 사용해서 웹을 만들고 앱을 만들고 무언가를 표현하는 건 너무나 당연한 거니까
그래서 문자열을 쓸 수밖에 없는 이유에 대해 검색을 했다. 뭔가 나오지 않아서
Why use strings on computers 이렇게 검색을 했다.

무언가 엄청난 기세로 자료들이 나와서 읽어 보았지만 지금 내가 이해하기에는 굉장히 어렵고
컴퓨터에서 문자열만 연구해도 평생을 할 수 있겠다고 생각을 했다.

잠시 키워드를 던진다면
아스키코드 어셈블리어 디지털신호 16진법 8진법 C언어 character 시퀀스문자 리터럴상수 등등
아마 키워드만 밤새 적어도 다 적지 못할 것이다.

그래서 우선 지금 필요한 개념만 핥고 넘어가기로 했다.
무언가 또 궁금한 게 생기고 공부를 해야 한다면 또 그 부분을 찾아서 하는 걸로 !

설명

설명을 하자면 태초의 컴퓨터는 디지털 신호로 컴퓨터와 소통을 했을 것이고
그다음은 어셈블리어와 같은 저급언어에서 자바나 파이썬 같은 고급언어들로 발전해왔을 것이다.
0과1의 신호를 주고 받으며 컴퓨터와 소통 할 때부터 발전하여
character와 같이 문자 하나를 보관해서 사용하는 방식으로 발전했을 것이고
그것이 비효율 적이라는 걸 깨달은 똑똑한 자들이
파이썬과 같은 고급 언어에서 "" 따옴표에 감싸 이것은 이제부터 문자열이야 라는 규칙을 정했을 것이다.

🔔 정리를 하자면 만들때 이런 형식으로 사용하자고 정해버린거 🔔

문자열을 사용하는 방법

기본 사용방법

sentence = '나는 소년입니다.'
sentence2 = '파이썬은 쉬워요'
sentence3 = """
나는 소년이고, 
파이썬은 쉬워요
"""
# 기본적으로 작은 따옴표와 큰 따옴표로 감싸 문자열을 사용한다.

슬라이싱

jumin = "900705-1234567"

print("성별 : " + jumin[7])
print("연 : " + jumin[0:2]) # 0 부터 2직전까지 (0,1)
print("월 : " + jumin[2:4])
print("일 : " + jumin[4:6])

print("생년월일 : " + jumin[:6]) # 처음부터 6직전까지
print("뒤 7자리 :" + jumin[7:]) # 7 부터 끝까지
print("뒤 7자리 (뒤에서 부터) :" + jumin[-7:])
# 맨 뒤에서 7번째부터 끝까지 

(출력문)
성별 : 1: 90: 07: 05
생년월일 : 9007057자리 :12345677자리 (뒤에서 부터) :1234567

문자열 처리 함수

python = "Python is Amazing"
print(python.lower()) # 전부 소문자로 출력
print(python.upper()) # 전부 대문자로 출력
print(python[0].isupper()) # 0번째 문자가 대문자이면 True 출력
print(len(python)) # 변수의 문자 개수 출력
print(python.replace("Python", "Java")) # "Python" -> "Java" 문자 바꾸기

index = python.index("n") # 5 출력 (n이 앞에서 부터 몇번째 위치인가)
print(index)
index = python.index("n", index + 1) 
# 15 출력 (n글자의 두번째 위치) 
# 앞에서 찾은 위치 다음부터 n문자의 위치를 찾는다)
print(index)

print(python.find("Java")) # -1 출력
# 문자 혹은 문장위 위치를 알려준다.
# 내가 원하는 값이 없는경우 -1 반환
print(python.index("Java")) # 오류
# 인덱스는 찾는 값이 없는경우 오류가 난다.

print(python.count("n")) # 2 출력
# 카운트는 문장의 문자가 몇번 나왔는지 찾아 준다.

문자열 format

print("a" + "b")
print("a", "b") # 이렇게 하면 자간 간격이 생긴다.
print("a", "b", sep = " vs ") 
# sep를 사용해 글자간 사이에 문장을 넣거나 간격을 없애는것도 가능하다.

(출력)
ab
a b
a vs b

# 방법 1
print("나는 %d살입니다." % 20) # d는 정수형
print("나는 %s을 좋아해요." % "파이썬") # s는 문자형
print("Apple 은 %c로 시작해요." % "A") # c는 char 한글자만 받는다
# %s 만 사용해도 파이썬은 똑똑해서 알아먹는다.
print("나는 %s살입니다." % 20)
print("나는 %s색과 %s색을 좋아해요." %("파란", "빨간"))

# 방법 2
print("나는 {}살입니다." .format(20)) 
> 나는 20살입니다.
print("나는 {}색과 {}색을 좋아해요." .format("파란", "빨간"))
> 나는 파란색과 빨간색을 좋아해요.
print("나는 {0}색과 {1}색을 좋아해요." .format("파란", "빨간"))
> 나는 파란색과 빨간색을 좋아해요.
print("나는 {1}색과 {0}색을 좋아해요." .format("파란", "빨간"))
> 나는 빨간색과 파란색을 좋아해요.
# format 뒤에오는 문장에 순서를 매겨 사용할 수도 있다.
# "파란" 위치가 0번 "빨간" 위치가 1번

# 방법 3
print("나는 {age}살이며, {color}색을 좋아해요" .format(age = 20, color = "빨간"))
# 변수를 선언하듯이 포맷 뒤에 내용을 적는 것도 가능하다.

# 방법 4
age = 20
color = "빨간"
print(f"나는 {age}살이며, {color}색을 좋아해요")
# 변수에 저장된 값을 가져와서 쓰는 것도 가능하다.

탈출문자

print("백문이 불여일견\n백견이 불여일타")
# \n : 줄바꿈
> (출력)
> 백문이 불여일견
> 백견이 불여일타

print("저는 \"천재\"입니다.")
print("저는 \'천재\'입니다.")
# \" \' : 문장내에서 따옴표를 표현
> (출력)
> 저는 "천재"입니다.
> 저는 '천재'입니다.

print("users\\castleq90\\Desktop")
# \\ : 출력문장 내에서 \

print("Red Apple\rPine") # PineApple 출력
# \r : 커서를 맨 앞으로 이동

print("Redd\bApple") # RedApple 출력
# \b : 백스페이스 (한 글자 삭제)

print("Red\tApple") # Red     Apple 출력
# \t : 탭

참조자료 : 인프런 - 파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자

profile
DONE IS BETTER THAN PERFECT

0개의 댓글