반응형

오늘은 문자열을 활용하는 방법들을 알려드릴게요.

 

문자열의 포맷

파이썬의 문자열에는 format 함수가 있습니다.

이 format()는 문자열의 포맷을 지정된 스타일로 변경할 수 있어요.

아래 예시를 볼까요?

 

"오늘은 사과 {}개를 먹었어요."라는 문자열이 있습니다.

그리고 그 문자열의 format() 안에는 1이 입력되어 있네요.

이 코드의 의미는 중괄호 안에 1을 대입하라는 뜻이에요.

그래서 "오늘은 사과 1개를 먹었어요."라는 결과가 출력됩니다.

 

format 함수로 중괄호 안에 값을 설정

 

그럼 다음의 코드는 어떨까요?

우선 지난 시간에 배웠던 큰따옴표 3개를 사용해서 문자열을 출력하고 있네요.

분명히 위에서 말한 것처럼 중괄호 안에 1이 대입될 것 같은데 에러가 발생하고 있죠.

이건 값을 대입해야 될 경우는 2개인데, 정작 입력된 값은 1개라서 문제가 됩니다.

 

값을 대입할 부분보다 입력된 값이 적은 경우

 

위의 문제를 해결하기 위한 방법은 2가지 경우가 있어요.

첫 번째 해결 방법은 아래처럼 중괄호 안에 숫자를 입력하는 거에요.

숫자는 0부터 시작하고, format() 안에 입력된 값의 개수만큼 사용할 수 있어요.

 

예를 들어 format() 안에 1, 5, 8이라는 숫자 3개가 입력되어 있다면,

중괄호에 입력할 수 있는 숫자는 0부터 시작해서 0, 1, 2라는 숫자 3개가 됩니다.

그래서 아래 코드에서는 입력된 값이 1개이기 때문에 값을 대입받는 중괄호의 숫자를 전부 0으로 설정해서 문제를 해결했어요.

 

값을 대입할 부분과 입력된 값의 수를 동일하게 설정한 경우

 

두 번째 해결 방법은 대입 받는 중괄호의 개수만큼 format() 안에 입력하는 값을 입력해주면 됩니다.

그래서 사과에는 1을, 바나나에는 2를 각각 대입해서 문제를 해결했네요.

이렇게 같은 문제에 대해서 해결할 수 있는 방법은 여러 가지예요.

그래서 다양한 활용 법을 익히시는 편이 문제를 해결할 수 있는 확률을 높일 수 있어요.

 

사과와 바나나에 각각 1과 2를 설정한 경우

 

아래 예시에서는 문자열을 변경했어요.

게임을 해보신 분들은 비슷한 문장을 많이 보셨을 거예요.

과연 제가 레벨이 1에서 5까지 도달하는 동안 각각의 레벨마다 준비된 문자열이 있을까요?

 

답은 no입니다. 준비된 문자열은 없어요.

아래처럼 미리 정의된 문자열에 이름과 레벨을 대입해서 보여주는 겁니다.

그래서 아래 코드를 실행하면 "홍길동님의 레벨이 5입니다"로 출력되는 거예요.

여기에 여러분의 이름을 입력하면 "???님의 레벨이 5입니다"로 출력되겠죠.

 

레벨업 문구의 예시

 

문자열의 포맷은 대입받을 값의 이름을 중괄호 안에서 설정할 수 있어요.

그리고 그 이름을 사용해서 format() 안에서 값을 입력받을 수 있습니다.

그래서 아래 코드에서는 첫 번째 중괄호에서 대입받을 값의 이름을 name이라고 설정하고,

format() 안에서 이름이 name인 중괄호에 홍길동이라는 값을 입력하고 있습니다.

이렇게 중괄호에 이름을 지정해서 사용하시면 잘못된 값을 입력하는 실수를 예방할 수 있어요.

 

대입하려는 값의 이름을 설정해서 입력 실수를 예방

 

제가 간략하게 소개하고 있지만 문자열의 포맷에는 다양한 활용 법들이 있어요.

그리고 그중에는 아래처럼 쉼표를 사용해서 1000 단위를 구분할 수 있는 방법도 있어요.

 

1000 단위를 쉼표로 구분하는 예시

 

문자열 함수

파이썬에는 문자열이 사용할 수 있는 함수들이 있어요.

그럼 함수는 무엇일까요?

 

함수는 입력된 값을 가공해서 값을 출력해주는 것을 말해요.

지금까지 사용하셨던 print(), len(), type() 들도 각각의 기능이 있는 함수들이에요.

 

그럼 문자열의 함수는 무엇일까요?

바로 문자열을 사용하기 위해서 필요한 기능들을 미리 정의해 놓은 것입니다.

앞서 공부했던 format 함수처럼요.

 

그리고 문자열의 함수는 여러 가지가 있지만 여기서는 몇 개만 알려드릴게요.

문자열의 특정 문자 또는 문자들을 수정하고 싶으면, replace()를 사용하시면 됩니다.

아래 예시에서는 replace()를 사용해서 문자 "B""A"로 변경했어요.

출력된 결과는 엄마가 좋아하실 것 같은 문장으로 변경되었네요.

 

replace 함수로 문자 B를 A로 변경하는 예시

 

문자열 안에서 특정 문자 또는 문자들의 위치를 찾고 싶다면 find()를 사용하시면 됩니다.

어제 공부했던 문자열 인덱싱이 기억나시나요?

첫 번재 문자가 0부터 시작한다는 것을 꼭 기억해 주세요.

아래 예시에서는 문자 "B"의 위치3이라고 하네요.

 

find 함수로 문자 B의 위치가 3인 것을 확인하는 예시

 

간혹 문자열을 소문자 또는 대문자로 변경할 필요가 생겨요.

그래서 문자열을 대문자로 변경하고 싶으면 upper()를 사용하시면 됩니다.

 

upper 함수로 소문자를 대문자로 변경하는 예시

 

반대로 문자열을 소문자로 변경하고 싶다면 lower()를 사용하세요.

 

lower 함수로 대문자를 소문자로 변경하는 예시

 

간혹 문자열에 공백이 많은 경우가 생겨요.

그리고 직접 공백을 지우는 일은 시간 낭비겠죠?

이럴 때는 strip()을 사용해서 공백을 지우시면 됩니다.

공백이 오른쪽, 왼쪽, 혹은 양쪽 모두 있어도 전부 지울 수 있어요.

 

strip 함수로 양쪽의 공백을 제거하는 예시


오늘로 문자열에 대한 내용은 마무리하고 내일은 숫자형에 대해서 알려드릴게요.

그리고 오늘 소개해드린 문자열의 함수 외의 것들은 나중에 정리해서 포스팅할 예정입니다.

반응형

'개발 > 파이썬 문법' 카테고리의 다른 글

파이썬의 연산자  (0) 2021.09.14
파이썬의 숫자형  (0) 2021.09.13
문자열 사용하기  (0) 2021.09.10
파이썬의 문자열  (2) 2021.09.09
파이썬 문법 정리 목차 (작성중)  (0) 2021.04.19
반응형

오늘은 어제에 이어서 문자열을 사용하는 방법에 대해서 알려드릴게요.

어제 큰따옴표작음따옴표로 문자열을 표시할 수 있다고 알려드렸죠.

그러면 print("Hello"+" "+'World') 이런 코드는 어떻게 출력될까요?

바로 아래처럼 Hello World가 출력됩니다.

 

문자열을 더해서 출력하는 예시

 

보신 것처럼 문자열은 서로 더해줄 수가 있어요.

그리고 반드시 "+"로 문자열들을 더하지 않아도 아래처럼 붙여서 사용할 수 있습니다.

 

+ 기호 없이 문자열을 함께 출력하는 예시

 

Hello와 World 사이의 공백을 표시하기 위해서 "Hello", ' ', "World" 문자열 3개를 사용했어요.

그렇다면 print("""무궁화 꽃이 피었습니다.""")print('''무궁화 꽃이 피었습니다.''') 코드는 어떻게 출력될까요?

아래처럼 정상적으로 출력이 되네요.

 

큰따옴표와 작음따옴표를 앞/뒤로 3개씩 사용한 예시

 

이렇게 큰따옴표와 작음따옴표를 앞/뒤로 3개씩 사용하는 경우는 문자열을 나타낼 때 사용할 수 있으며, 파이썬의 주석으로도 사용됩니다.

주석은 아래처럼 코드의 실행 결과에 어떠한 영향도 주지 않는 문자열을 의미해요.

그래서 주로 코드의 설명을 작성할 때 주석이 사용됩니다.

그리고 주석의 다른 예시는 다른 시간에 알려드릴게요.

 

큰따옴표와 작음따옴표를 사용한 주석 예시

 

지난 시간에 문자열 앞에 "r"을 입력하면 이스케이프 문자를 무시할 수 있다고 알려드린거 기억나시죠?

큰따옴표나 작은따옴표 3개를 사용하시면 동일한 출력 결과를 보실 수 있어요.

 

큰따옴표를 앞/뒤로 3개씩 사용해서 이스케이프 문자를 무시하는 경우

 

또한, 따옴표 3개를 사용하시면 아래처럼 여러 줄의 문자열을 사용할 수 있어요.

 

큰따옴표로 여러 줄의 문자열을 사용하는 예시

 

문자열 인덱싱

문자열 인덱싱이란 숫자를 사용하여 문자열의 특정 문자에 접근하는 것을 말해요.

문자열의 인덱싱을 공부하기에 앞서 문자열의 길이를 확인해볼까요?

출력을 의미하는 print() 대신에 len()을 사용하면 문자열의 길이를 출력할 수 있어요.

 

"I'm a boy"라는 문자열의 길이는 9로 출력되네요.

그리고 text = "I'm a boy" 코드는 text라는 저장 공간에 "I'm a boy" 문자열을 입력해 줍니다.

그래서 "I'm a boy" 문자열 대신에 text를 대신 사용할 수 있어요.

참고로 이때의 text는 변수라고 불립니다.

 

문자열의 길이를 출력하는 예시

 

문자열의 인덱싱은 첫 번째 문자가 0부터 시작해요.

그래서 "I'm a boy" 문자열에서 알파벳 a인덱싱 숫자가 4라는 것을 알 수 있어요.

그리고 문자열 인덱싱은 음수로도 사용할 수 있어요.

때문에 알파벳 a의 인덱싱 숫자가 양수로 4라면, 음수로는 -5가 됩니다.

 

문자열 인덱싱의 이해를 위한 예시

 

그럼 문자열 인덱싱을 활용해볼까요?

"I'm a boy" 문자열에서 "I'm " 부분만 문자열 인덱싱을 하고, "your father"라는 문자열을 함께 출력해줬어요.

그런데 text[0]+text[1]+text[2]+text[3] 코드로 필요한 부분만 사용하는 건 불편하지 않나요?

그런 경우에는 문자열을 슬라이싱 해서 사용하면 됩니다.

 

문자열 인덱싱 사용 시 불편한 경우

 

문자열 슬라이싱

문자열 인덱스와 함께 콜론을 사용하시면 문자열의 특정 부분만 사용할 수 있어요.

그래서 앞서 사용했던 text[0]+text[1]+text[2]+text[3] 코드 대신에 text[0:4] 코드로 슬라이싱 해서 사용할 수 있어요.

출력되는 결과는 동일하지만 사용된 코드가 훨씬 보기 좋고 간단하다는 장점이 있어요.

 

문자열 슬라이싱 예시

 

참고로, text[0:4] 코드는 첫 번째 문자인 "I"부터 시작해서 네 번째 문자의 앞 문자인 " "까지만 사용한다는 것을 의미해요.

그래서 알파벳 a는 슬라이싱 되지 않고 그 앞의 공백까지만 슬라이싱 됩니다.

 

문자열 슬라이싱의 이해를 위한 예시

 

또 다른 문자열 슬라이싱 예를 보여드릴게요.

"20211225" 라는 문자열이 있어요.

이 문자열은 특정 날짜를 나타내고 있네요.

이 문자열을 연도, 월, 일로 구분해서 슬라이싱 하면 아래처럼 출력됩니다.

 

 

혹시 "25"를 슬라이싱 한 코드가 이상하지 않으신가요?

text[6:] 코드는 인덱스 6번째부터 마지막 문자까지 슬라이싱 되는 것을 의미합니다.

파이썬은 이렇게 코드를 간결하게 생략해서 사용할 수 있는 점이 장점이에요.

 

만약, 저런 기능이 없다면 여러분은 아래처럼 len(text) 코드로 문자열의 길이를 구해서 사용하셔야 돼요.

그러면 코드가 지저분해 보이면서 보기 불편해져요.

 

text[6:len(text)]는 가독성이 떨어져서 불편함

 

오늘은 여기까지 포스팅할게요.

내일은 문자열을 활용하는 방법에 대해서 알려드릴게요.😉


오늘은 피곤해서 그런지 작성하던 글을 여러 번 날려버렸어요.😱

그래도 기존에 작성했던 내용이 있어서 금세 복구할 수 있었네요.😅

반응형

'개발 > 파이썬 문법' 카테고리의 다른 글

파이썬의 숫자형  (0) 2021.09.13
문자열 활용하기  (0) 2021.09.11
파이썬의 문자열  (2) 2021.09.09
파이썬 문법 정리 목차 (작성중)  (0) 2021.04.19
파이썬 문법 정리 계획서  (0) 2021.04.18
반응형

오늘은 파이썬의 문자열에 대해서 알려드릴게요.

문자열은 문자들이 순서대로 나열된 것을 얘기합니다.

앞서 print("Hello World") 코드를 입력해서 Hello World라는 텍스트가 출력되었죠.

print() 안에 입력된 "Hello World"가 바로 문자열이에요.

 

"Hello World"는 문자열

 

정말 문자열인지 확인해볼까요?

print() 대신에 type()로 코드를 변경하면 type("Hello World")이 되겠죠.

type()을 사용하면 입력된 데이터가 어떤 자료 형식인지 확인할 수 있습니다.

그래서 type("Hello World") 코드를 실행하면 str로 출력되는 것을 볼 수 있어요.

이건 "Hello World"라고 입력된 데이터가 문자열이라는 것을 의미해요.

참고로 str은 string(문자열)의 약자입니다.

 

type()로 "Hello World"가 문자열인 것을 확인한 모습

 

파이썬에서 문자열은 큰따옴표작은따옴표로 표시할 수 있어요.

그래서 print("Hello World") 코드와 print('Hello World') 코드의 출력 결과가 동일해요.

 

문자열은 큰따옴표와 작은따옴표를 사용

 

이스케이프 문자

만약 문자열 안에 큰따옴표 or 작은따옴표를 사용하고 싶으면 어떻게 하면 좋을까요?

print("I'm a boy") 라는 코드처럼 큰따옴표와 작은따옴표를 구분해서 사용하는 건 문제가 없어요.

그러면 print('I'm a boy') 코드는 어떨까요?

바로 아래처럼 에러가 발생해요.

 

문자열 안에 같은 따옴표를 사용하면 에러 발생

 

그리고 이럴 때 필요한 게 이스케이프 문자(escape character)에요.

이스케이프 문자는 문자열에 영향을 주지 않고 큰따옴표, 작은따옴표 같은 문자를 사용할 수 있게 해줘요.

그리고 이 이스케이프 문자를 사용하는 방법은 필요한 곳에 백슬래시를 입력해주면 돼요.

그래서 앞서 에러가 발생했던 코드에 "\"를 입력하면 문제가 해결됩니다.

 

이스케이프 문자 \로 에러를 해결한 모습

 

그럼 print("C:\Program Files\Naver") 코드는 어떤 결과가 나올까요?

이번에도 에러가 발행하네요.

이번 문제는 무엇일까요?

 

 

바로 이스케이프 문자 때문이에요.

파이썬에 정의된 이스케이프 문자 중에는 "\n" 이 있어요.

그리고 아래처럼 줄을 바꾸기 위해서 사용됩니다.

 

줄바꿈을 위한 이스케이프 문자 \n

 

이제 왜 print("C:\Program Files\Naver") 코드에서 에러가 발생했는지 아시겠나요?

생각하신 대로 "Program Files""Naver" 사이의 백슬래시를 "\n"으로 인식해서 그래요.

그리고 이 문제를 해결하는 방법은 간단해요.

백슬래시 앞에 "\"를 한번 더 입력해서 "C:\Program Files\\Naver"가 되도록 변경해 주세요.

이것도 미리 정의된 이스케이프 문자입니다.

 

이스케이프 문자 \\를 사용해서 에러를 해결

 

그런데 아래의 문자열을 출력하고 싶다면 마찬가지로 이스케이프 문자 "\\"를 사용하실 건가요?

만약에 사용하고 싶은 문자열이 더 긴 경우에도 하나씩 변경할 수 있을까요?

"C:\Program Files\NVIDIA Corporation\NvContainer\plugins\User" 같은 경우에는 문자열 앞에 "r"을 입력해 주세요.

"r" 뒤의 문자열에 입력된 이스케이프 문자를 무시하고 사용할 수 있게 해줘요.

바로 아래처럼요.

 

문자열을 raw string으로 지정해서 이스케이프 문자를 무시하고 사용

 

그래서 아래처럼 줄을 바꾸고 싶을 때는 주의해서 사용하세요.

 

이스케이프 문자를 사용하고 싶은 경우 raw string 지정은 피하기

 

오늘 알려드릴 내용은 여기까지입니다.

다음에는 문자열을 사용하는 방법에 대해서 알려드릴게요.

반응형

'개발 > 파이썬 문법' 카테고리의 다른 글

파이썬의 숫자형  (0) 2021.09.13
문자열 활용하기  (0) 2021.09.11
문자열 사용하기  (0) 2021.09.10
파이썬 문법 정리 목차 (작성중)  (0) 2021.04.19
파이썬 문법 정리 계획서  (0) 2021.04.18

+ Recent posts