문자열(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
생년월일 : 900705
뒤 7자리 :1234567
뒤 7자리 (뒤에서 부터) :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 출력
# 카운트는 문장의 문자가 몇번 나왔는지 찾아 준다.
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 : 탭