JSITCLUB

파이썬 독학#10 - 문자를 다루는법 - 문자열(str) 1 본문

파이썬/입문

파이썬 독학#10 - 문자를 다루는법 - 문자열(str) 1

jsitclub 2019. 12. 30. 12:39

이번에는 문자열(str)에 대해 배우겠습니다.

문자열은 리스트, 튜플과 함께 시퀀스형(나열형)에 해당합니다. (참고 : https://jsitclub.tistory.com/15)

시퀀스형은 쉽게 말해 여러 개의 자료를 늘어놓은 자료형인데요, 시퀀스형들의 사용방법에 비슷한 내용들이 많기 때문에 문자열을 잘 익혀두면 리스트와 튜플은 비교적 쉽게 익히게 될 거예요.

먼저 문자열은 문자를 나열한 것으로 다른 언어에서는 문자형과 그 문자를 나열한 문자열로 구분하여 사용하지만 파이썬에서는 문자열로만 쓰입니다.

1. 문자열 출력 과 연산

#1

문자열의 형태는 큰따옴표(") 또는 작은따옴표(')를 사용하여 글자를 묶어주면 됩니다.

- a에 문자열을 "hello JS IT CLUB"를 저장한 후 출력합니다. 작은따옴표를 사용해도 같습니다.

- "\n"을 이용하여 줄 바꿈을 합니다. 문자열 중간에 줄 바꿈(\n), 탭(\t), 백스페이스(\b)등의 기능을 넣을 수 있으며, 역슬래시(\) 나 큰따옴표("), 작은따옴표(')를 출력할 때도 앞에 역슬래시(\)를 붙여줍니다.

만약 이 세 가지 문자를 출력할 때 역슬래시를 붙이지 않으면 파이썬은 다른 문자를 기다리거나, 문자열이 끝난 것으로 생각해 오류가 발생합니다.

- 여러 줄을 엔터를 입력한 그대로 사용할 때는 """ 나 '''로 묶어서 사용합니다. (변수로 사용하지 않고, 밖에 """나'''를 사용하면 주석처리가 됩니다.  참고:https://jsitclub.tistory.com/10의 주석)

#2 문자열의 연산

같은 문자열일 때는 "+"로 두 값을 연결할 수 있으면 *를 이용하여 반복할 수 있습니다.

 

2. 문자열 인덱싱 과 슬라이싱

 

문자열 'J' 'S' ' ' 'I' 'T' ' ' 'C' 'L' 'U' 'B'
인덱스 [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
인덱스(-) [-10] [-9] [-8] [-7] [-6] [-5] [-4] [-3] [-2] [-1]

 

#3 인덱싱

문자열의 인덱스는 문자열의 위치(~번째)를 의미합니다.

문자열의 인덱싱은 인덱스 값을 이용해 문자열 중 한 글자를 가져오는 방법이다. 인덱싱의 형식은 문자열 뒤에 [](대괄호)를 붙이고 그 안에 인덱스 숫자를 입력해 사용합니다.

기본적인 인덱싱은 다음과 같이 0부터 시작하게 됩니다. 그러므로 'S'는두번째 글자이지만, 인덱스는 [1]이라는 점을 꼭 기억하기 바랍니다. 

되고 -를 붙여 역순으로 된 인덱스를 사용할 수도 있습니다.

주의! 문자열은 인덱싱을 이용하여 바꿀 수는 없습니다.(리스트는 가능) 그러므로 a="JSITCLUB"을 바꾸고 싶다고 a [2]="C"를 사용하면 에러 메시지가 뜹니다. 만약 바꾸고 싶으면, a="JSCTCLUB"로 다시 적어줘야 합니다.

 

#4 슬라이싱

문자열의 슬라이싱은 문자열의 범위를 이용하여 여러 글자를 한 번에 가져오는 방법을 말합니다.

슬라이싱의 방법은 [](대괄호) 안에 :(콜론)으로 구분하여 범위를 적어줍니다.

주의! 앞의 숫자는 시작 지점 인덱스, 뒤의 글자는 끝 지점 인덱스+1의 라는 것이다. 즉 a [이상:미만]의 형태입니다.

슬라이싱을 사용할 때 앞의 수를 적지 않으면 자동으로 처음부터 시작한다. 마찬가지로 뒤의 수를 적지 않으면 끝까지가 된다. 또한 a [:]와 같이 적으면 처음부터 끝까지의 글자를 의미한다.

 

#5 슬라이싱의 간격

슬라이싱에 3번째 수를 넣으면 간격을 의미하게 됩니다. 위의 코드 a [:9:2]는 처음부터 인덱스 8번째까지 2칸 간격으로 출력합니다.

지금까지 문자열을 다루는 법을 배웠습니다. 여기서 몇 가지 기억할 것은 문자열 공백도 한 글자입니다. ""와 달리 " "는 "a"와 같이 하나의 문자입니다. 또한 컴퓨터는 숫자 3과 글자"3"을 서로 다르게 생각한다는 것입니다. 문자의 숫자 값은 ascii코드를 참조하세요.

다음 시간에는 문자열의 메서드를 다루겠습니다. 감사합니다.

 

#1
a="JS IT CLUB"
print(a)
print(type(a))
print()

a="hello\nJS IT CLUB"
print(a)
a="hello\tJS IT CLUB"
print(a)
a="역슬래시:\\ 큰따옴표:\" 작은따옴표:\'"
print(a)

a="""
hello
JS IT CLUB
"""
print(a)

#2
a="hello"
b="JS IT CLUB"
print(a+b)

print(a*3)

#3
a="JS IT CLUB"
print(a[3])
print(a[9])

print(a[-1])
print(a[-4])

#4
print(a[3:5])
print(a[:2])
print(a[6:])

#5
print(a[:9:2])
Comments