문자열을 나열하는 방법은 크게 두 가지로 설명한다.
- 보통 문자열을 생성할 때
print(sentence) #나는 이지원입니다. sentence2 = "파이썬을 배우는 중이에요." print(sentence2) #파이썬을 배우는 중이에요.
이렇게 작은 따옴표(')나 큰 따옴표(")를 사용하여 문자열을 생성하는 것을 볼 수 있다.
- 여러 문자열을 한꺼번에 생성할 때
sentence3 = """ 나는 이지원입니다. 파이썬을 배우는 중이에요. """ print(sentence3) #나는 이지원입니다. 파이썬을 배우는 중이에요.
위의 예시와 같이 2개 이상의 문자열을 한번에 생성하려면, 큰따옴표(""") 3개를 연속으로 문자열의 앞뒤에 배치하여 감싸면 그대로 출력이 가능하다.
슬라이싱이란, 연속적인 객체들의 범위를 지정/선택하여 객체들을 불러오는 방법을 말한다.
예시를 들어 알아보자.
우리나라에서 문서에 대한 날짜를 기입할 때에는 보통 0000/00/00 (연도/월/일)순으로 적는다.
date = "2022.01.20" print("연 : " + date[0:4]) #연 : 2022 print("월 : " + date[5:7]) #월 : 01 print("일 : " + date[8:10]) #일 : 20
또 다르게는 인덱스의 맨 처음 부터나, 맨 뒤 까지로 범위를 잡을 때엔 생략도 가능한데,
print("연 : " + date[:4]) #연 : 2022 print("일 : " + date[8:]) #일 : 20
위와 같이 표기하여 맨 처음 예시와 같은 값을 생성할 수 있다.
미국의 표기법은 우리나라와 정 반대로 00/00/0000 (연도/월/일)순으로 적기 때문에, 뒤에서 부터 순서를 세는 경우를 알아보도록 하자.
print("연 : " + date[-4:]) #연 : 2022 print("월 : " + date[-7:-5]) #월 : 01 print("일 : " + date[:-8]) #일 : 20
🖤뒤에서 부터 셀 때는, 0이 아닌 -1부터 적용이 된다.
문자열 안에 있는 것들을 처리할 수 있는 여러가지 기능들
- 'Python'이라는 변수를 하나 생성해보았다.
Python = "Python is amazing"
print(python.lower()) #python is amazing
print(python.upper()) #PYTHON IS AMAZING
print(python[0].isupper()) #True
위의 예시에서는 0번째 있는 문자가 대문자인지 확인하는 문자열이다.
print(len(python)) #17
위의 예시는 'len(gth)'를 사용해서 문자열의 길이를 측정한다.
print(python.replace("Python","Java")) #Java is amazing
위의 예제에 나온'Python'을 'Java'로 변경해보았다.
index = python.index("n")
print(index) #5
index라는 변수를 만들어 그 안에 'n'이 몇번째에 위치하는지 알아보았다.
index = python.index("n", index + 1) #15
그 다음 'n'의 위치를 찾기 위해 'index + 1'을 추가하여 '15'라는 답을 얻을 수 있다.
print(python.find("Java")) #-1
위와 같이 'find'를 이용하면 없는 값은 '-1'로 값이 나온다.
print(python.index("Java")) #ValueError: substring not found...
이렇게 'index'를 이용하면 'Error'가 뜨는 것을 확인할 수 있다.
print(python.count("n")) #2
python'이라는 변수 안에 'n'이 몇개가 들어있는지 알 수 있다.
문자열을 포맷을 지정하는 방법들을 알아보자.
print("나는 %d살입니다." % 20) #나는 20살입니다.
'd'는 정수만 넣을 수 있다.
print("나는 %s를 좋아해요." % "파이썬") #나는 파이썬을 좋아해요.
's'는 문자열(string)의 첫글자이기 때문에, 큰따옴표(")로 감싸준다.
print("Apple은 %c로 시작해요." %"A")
'c'는 캐릭터라 한 글자 "A"(문자)만 받는다.
🖤참고로 %s를 사용하면 정수와 문자 모두 값 출력을 할 수 있다.
그러면 여기서 값을 2개 이상 출력하려면 어떤 방법이 있을까.
print("나는 %s색과 %s색을 좋아해요." % ("보라", "빨간")) #나는 보라색과 빨간색을 좋아해요.
print("나는 {}살입니다.".format(20)) #나는 20살입니다.
format()안에 입력된 값이 앞의 문장 사이의 중괄호에 넣어져 출력되는 것을 볼 수 있다.
print("나는 {}색과 {}색을 좋아해요.".format("보라", "빨간")) #나는 보라색과 빨간색을 좋아해요.
값이 2개 이상이어도 위와 같이 쉼표(,)를 넣어 값을 출력할 수 있다.
print("나는 {1}색과 {0}색을 좋아해요.".format("보라", "빨간")) #나는 빨간색과 보라색을 좋아해요.
순서 변경도 가능다. 1번째와 0번째의 값을 출력하라는 {1},{0}을 넣어서 format안의 순서를 바꿔서 생성할 수 있다.
print("나는 {age}살이며, {color}색을 좋아해요.".format(age = 20, color = "빨간"))
print("나는 {age}살이며, {color}색을 좋아해요.".format(color = "빨간", age = 20))
아래 format의 순서가 다르더라도, 중괄호 안에서 변수를 부르는 값이 같다면 같은 내용을 출력하게 된다. 따라서 위 두 문자열은 같은 값을 출력하게 된다.
age = 20
color = "빨간"
print(f"나는 {age}살이며, {color}색을 좋아해요.")
문장 앞에 'f'를 적고 나면, 중괄호 안의 값은 실제 변수에서 사용된 값을 그대로 출력해낼 수 있다.
print("백문이 불여일견\n백견이 불여일타") #백문이 불여일견
백견이 불여일타
위의 문장 사이에 줄바꿈이 필요한 경우엔, \
+ n
을 해주면 줄바꿈이 되어 출력 되는 것을 확인할 수 있다.
print("저는 "이지원"입니다.")
위의 예제를 그대로 출력해보면 에러가 뜨게 된다. 큰따옴표가 중복이 되어 값을 제대로 생성해내지 못하기 때문이다. 이러한 경우에, 문장 안의 큰따옴표를 그대로 출력해내려면 어떻게 해야할까.
print("저는 \"이지원\"입니다.") #저는 "이지원"입니다.
이렇게 \
역슬래시를 큰따옴표(") 앞에 사용해주면 큰따옴표가 그대로 출력이 되는 것을 확인할 수 있다.
print("Red Apple\rPine") #Pine Apple
\r
을 이용하면 가장 앞의 Red
로 커서를 이동시켜 Pine
으로 바꿔 적용하게 된다.
print("Redd\bApple") #RedApple
위와 같이 \b
를 사용하면 앞의 한 글자를 삭제할 수 있다.
print("Red\tApple") #Red Apple
위의 예제에서 \t
를 사용하면, 'Tab'키를 사용하는 것과 같은 효과가 적용되어 출력 되는 것을 확인할 수 있다.