오늘은 문자열을 활용하는 방법들을 알려드릴게요.
문자열의 포맷
파이썬의 문자열에는 format 함수가 있습니다.
이 format()는 문자열의 포맷을 지정된 스타일로 변경할 수 있어요.
아래 예시를 볼까요?
"오늘은 사과 {}개를 먹었어요."라는 문자열이 있습니다.
그리고 그 문자열의 format() 안에는 1이 입력되어 있네요.
이 코드의 의미는 중괄호 안에 1을 대입하라는 뜻이에요.
그래서 "오늘은 사과 1개를 먹었어요."라는 결과가 출력됩니다.
그럼 다음의 코드는 어떨까요?
우선 지난 시간에 배웠던 큰따옴표 3개를 사용해서 문자열을 출력하고 있네요.
분명히 위에서 말한 것처럼 중괄호 안에 1이 대입될 것 같은데 에러가 발생하고 있죠.
이건 값을 대입해야 될 경우는 2개인데, 정작 입력된 값은 1개라서 문제가 됩니다.
위의 문제를 해결하기 위한 방법은 2가지 경우가 있어요.
첫 번째 해결 방법은 아래처럼 중괄호 안에 숫자를 입력하는 거에요.
숫자는 0부터 시작하고, format() 안에 입력된 값의 개수만큼 사용할 수 있어요.
예를 들어 format() 안에 1, 5, 8이라는 숫자 3개가 입력되어 있다면,
중괄호에 입력할 수 있는 숫자는 0부터 시작해서 0, 1, 2라는 숫자 3개가 됩니다.
그래서 아래 코드에서는 입력된 값이 1개이기 때문에 값을 대입받는 중괄호의 숫자를 전부 0으로 설정해서 문제를 해결했어요.
두 번째 해결 방법은 대입 받는 중괄호의 개수만큼 format() 안에 입력하는 값을 입력해주면 됩니다.
그래서 사과에는 1을, 바나나에는 2를 각각 대입해서 문제를 해결했네요.
이렇게 같은 문제에 대해서 해결할 수 있는 방법은 여러 가지예요.
그래서 다양한 활용 법을 익히시는 편이 문제를 해결할 수 있는 확률을 높일 수 있어요.
아래 예시에서는 문자열을 변경했어요.
게임을 해보신 분들은 비슷한 문장을 많이 보셨을 거예요.
과연 제가 레벨이 1에서 5까지 도달하는 동안 각각의 레벨마다 준비된 문자열이 있을까요?
답은 no입니다. 준비된 문자열은 없어요.
아래처럼 미리 정의된 문자열에 이름과 레벨을 대입해서 보여주는 겁니다.
그래서 아래 코드를 실행하면 "홍길동님의 레벨이 5입니다"로 출력되는 거예요.
여기에 여러분의 이름을 입력하면 "???님의 레벨이 5입니다"로 출력되겠죠.
문자열의 포맷은 대입받을 값의 이름을 중괄호 안에서 설정할 수 있어요.
그리고 그 이름을 사용해서 format() 안에서 값을 입력받을 수 있습니다.
그래서 아래 코드에서는 첫 번째 중괄호에서 대입받을 값의 이름을 name이라고 설정하고,
format() 안에서 이름이 name인 중괄호에 홍길동이라는 값을 입력하고 있습니다.
이렇게 중괄호에 이름을 지정해서 사용하시면 잘못된 값을 입력하는 실수를 예방할 수 있어요.
제가 간략하게 소개하고 있지만 문자열의 포맷에는 다양한 활용 법들이 있어요.
그리고 그중에는 아래처럼 쉼표를 사용해서 1000 단위를 구분할 수 있는 방법도 있어요.
문자열 함수
파이썬에는 문자열이 사용할 수 있는 함수들이 있어요.
그럼 함수는 무엇일까요?
함수는 입력된 값을 가공해서 값을 출력해주는 것을 말해요.
지금까지 사용하셨던 print(), len(), type() 들도 각각의 기능이 있는 함수들이에요.
그럼 문자열의 함수는 무엇일까요?
바로 문자열을 사용하기 위해서 필요한 기능들을 미리 정의해 놓은 것입니다.
앞서 공부했던 format 함수처럼요.
그리고 문자열의 함수는 여러 가지가 있지만 여기서는 몇 개만 알려드릴게요.
문자열의 특정 문자 또는 문자들을 수정하고 싶으면, replace()를 사용하시면 됩니다.
아래 예시에서는 replace()를 사용해서 문자 "B"를 "A"로 변경했어요.
출력된 결과는 엄마가 좋아하실 것 같은 문장으로 변경되었네요.
문자열 안에서 특정 문자 또는 문자들의 위치를 찾고 싶다면 find()를 사용하시면 됩니다.
어제 공부했던 문자열 인덱싱이 기억나시나요?
첫 번재 문자가 0부터 시작한다는 것을 꼭 기억해 주세요.
아래 예시에서는 문자 "B"의 위치가 3이라고 하네요.
간혹 문자열을 소문자 또는 대문자로 변경할 필요가 생겨요.
그래서 문자열을 대문자로 변경하고 싶으면 upper()를 사용하시면 됩니다.
반대로 문자열을 소문자로 변경하고 싶다면 lower()를 사용하세요.
간혹 문자열에 공백이 많은 경우가 생겨요.
그리고 직접 공백을 지우는 일은 시간 낭비겠죠?
이럴 때는 strip()을 사용해서 공백을 지우시면 됩니다.
공백이 오른쪽, 왼쪽, 혹은 양쪽 모두 있어도 전부 지울 수 있어요.
오늘로 문자열에 대한 내용은 마무리하고 내일은 숫자형에 대해서 알려드릴게요.
그리고 오늘 소개해드린 문자열의 함수 외의 것들은 나중에 정리해서 포스팅할 예정입니다.