본문 바로가기
Language/Python 기초

Python 03_문자열

by pizzz 2022. 6. 29.

문자열(string) : 문자의 나열

모든 프로그래밍 언어는 문자만 나열해놓으면 식별자로 인식한다. 

문자를 변수로 저장하려면 따옴표를 사용하여 문자데이터임을 명시해야한다.

따옴표는 큰 따옴표나 작은 따옴표 둘 다 가능하다.

str_1 = 'abc'
print(str_1)

따옴표를 세 번 입력하여 print문으로 사용하면 줄바꿈그대로 결과값으로 출력된다.

print("""삼따옴표를 
사용하면
줄바꿈이 그대로
출력됩니다.""")

 

- 결합연산

문자열과 문자열을 더하기/곱하기 연산이 가능하다.

 

# 문자열 더하기

print("문자열1" + "문자열2") 

 

결과값

문자열1문자열2

print("hello" +"python")

first = "hello"
second = "python"

cont = first + second # cont에는 두 문자열이 결합된 1개의 문자열이 저장
print(cont)

결과값

hellopython

hellopython

 

# 문자열 곱하기

곱하는 수 만큼 문자열을 반복하여 하나의 문자열을 생성한다.

string = "파이썬"
result = string * 3
print(result)

결과값

파이썬파이썬파이썬

 

 

- 문자열 인덱싱(indexing)

인덱스로 문자의 위치를 나타내는것, 0부터 시작, 공백도 문자에 포함

string[0] : 첫번째 문자

string[-1] : 마지막 문자

string = "example"
print(string[0])
print(string[-1])

결과값

e

 

- 슬라이싱(slicing)

문자열 중에서 일부분을 복사해서 참조하는 것, 원본 문자열 중 일부를 복사하여 변환

문자열 원본 변수는 변경할 수 없다. 

string[start index : stopindex + 1]

string[:] # 문자열 전체

string[-1:] # 마지막 문자

string[:-1] # 첫문자 ~ 마지막 전 문자까지 

string = "example"
print(string[0:4])
print(string[4:7])

결과값

exam

ple

 

 

* 파이썬이 처리하는 모든 자료는 class로 되어 있다. 

int(integer) 정수

float 실수

str(string) 문자열

bool(boolean) True/False 

 print(type()) 형식으로 class 확인 가능

 

 

- in / not in 연산자

문자열 안에 특정 문자열이 포함되어 있는지 여부를 true / false로 반환

대소문자를 구분한다.

string = "Python String Example"

print("Python" in string)
print("example" in string)

결과값

True

False 

 

print("String" not in string)
print("example" not in string)

결과값

False

True

 

if "Python" in string :
    print("있음")
else :
    print("없음")

결과값

있음

 

if "Python" not in string :
    print("없음")
else :
    print("있음")

결과값

있음

 

* list로도 사용 가능, list의 원소로 존재하는지 확인하여 true/false 반환

exam = ["kor", "eng", "math"]

print ("kor" in exam)

결과값

True

 

 

- 문자열 관련 메소드(함수)

# len() : 문자열(변수)의 길이 반환 (파이썬이 기본제공)

    print(len(객체변수)) # 객체변수를 선언 후 print

 

# count() : 문자열 내에 들어 있는 특정문자(열)의 개수 반환해주는 메소드

   메서드 사용법 : 객체변수.메소드명(인수)

   print(객체변수.count("특정문자")) # 객체변수를 선언 후 print

   print(문자열.count("특정문자"))

 

# find() : 문자열 내에 특정문자(열)의 위치를 찾아주는 메소드

  찾는 문자열이 없을 경우 -1을 반환

  in연산자와 비슷하게 사용가능

  print(객체변수.find("특정문자")) # 객체변수를 선언 후 print

 

# index() : 문자열 내에 특정문자(열)의 위치를 찾아주는 메소드

  찾는 문자열이 없을 경우 에러 발생  :  ValueError: substring not found

  print(객체변수.index("특정문자")) # 객체변수를 선언 후 print

 

# split() : 구분자를 기준으로 문자열을 나누어 리스트로 반환해주는 메소드

  구분자 : 기본은 공백 (지정가능 : "-", ":", ",", ...)

  객체변수b = 객체변수a.split("구분자")

  print(객체변수b)

 

# replace() : 전체 문자열에서 특정 문자열을 찾아 다른 문자열로 변경하는 메소드

  원본을 변경시키지 않는다. 

  전체문자열.replace("찾는 문자열","변경할 문자열")

  찾는 문자열이 존재하지 않는 경우 원래 문자열 반환

 

# join() : 각 문자 사이에 특정 문자(열) 삽입

   변수 = "특정 문자(열)"

   print(변수.join("문자열")) 

   join의 대상이 list일 수 있다.

a = "aa"
print(a.join("bbb"))

결과값

baabaab

 

# strip : 공백제거

  원본을 변경시키지 않는다. 

  객체변수.strip() # 양쪽 공백 제거

   lstrip() : 왼쪽 공백 제거

   rstrip() : 오른쪽 공백 제거

 

# isalpha() : 문자 여부 결과 반환 (True, False)

# isdigit() : 숫자 여부 결과 반환 (True, False)

# isspace() : 하나의 문자에 대해 공백 여부 결과 반환 (True, False)

# isalnum() : 문자 또는 숫자 여부 결과 반환 (True, False)

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

프로그래머스 코테 배열의 유사도 - set 집합 함수  (0) 2022.12.07
[Python] 연산자 /와 //차이  (0) 2022.12.07
Python 02_제어문  (0) 2022.06.29
Python 01_ 변수  (0) 2022.06.27