# 문자열 메서드

<iframe
  loading="lazy"
  className="youtube"
  src="https://www.youtube.com/embed/D4xUOyss96k"
  title="YouTube video player"
  allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
/>

<iframe
  loading="lazy"
  className="youtube"
  src="https://www.youtube.com/embed/4_uGNu9IlCU"
  title="YouTube video player"
  allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
/>

## 문자열 메서드란?

메서드란 특정 객체에 정의된 함수를 호출하는 것을 뜻합니다.

즉, 문자열이라는 객체에 미리 만들어진 기능들을 사용한다는 뜻입니다.

예: 뒤집기, 다 대문자로 만들기 등...

## 문자의 대소문자 메서드

파이썬에서 대문자를 소문자로, 소문자를 대문자로 바꿀 수 있는 방법이 있습니다.

`title()`은 책 제목 형식(책 제목 형식은 첫 번째 단어의 첫 번째 알파벳이 대문자인 형태)으로 바꿉니다.

`upper()`은 모든 알파벳을 대문자로 전환합니다.

`lower()`은 모든 알파벳을 소문자로 전환합니다.

`isupper()`은 모든 알파벳이 대문자인지 알려줍니다.

`islower()`은 모든 알파벳이 소문자인지 알려줍니다.

## `len()`

가끔 파이썬에서 문자의 길이를 알아야 할 때가 있습니다.

예를 들어 사용자가 새로운 암호를 `input()` 함수 안에 입력하고 있을 때, 파이썬 프로그램은 암호가 짧아서 조금 더 긴 암호를 넣으라고 물어 볼 수 있습니다.

문자의 길이를 구하기 위해서 `len()` 함수를 사용할 수 있습니다.

`len`은 영어로 '길이'를 뜻하는 `length`의 줄임말입니다.

<iframe
  loading="lazy"
  title="Python IDLE Trinket"
  src="https://trinket.io/embed/python/41e9ea9617"
  height="400"
/>

## `index()`

`index()` 메서드를 사용하여 문자 안에 또 다른 문자가 존재하는지 알 수 있습니다.

```py
print('abcdef'.index('abc'))
```

만일 문자열이 문자 안에 없다면 에러가 생깁니다.

## ~ in ~

부분문자열은 문자 안의 문자입니다.

예를 들어 문자 `abc`에는 부분문자열 'a','b'등이 존재합니다.

문자 안에 부분문자열이 존재하는지 알기 위하여 우리는 'in'이라는 키워드를 사용할 수 있습니다.

'in'은 한국어로 '안'이라는 뜻으로 "abc가 abcdef 안에 있나요?"라고 파이썬에게 물어보는 것과 같습니다.

<iframe
  loading="lazy"
  title="Python IDLE Trinket"
  src="https://trinket.io/embed/python/a26965d6fd"
  height="400"
/>

## +와 \*

문자를 `+`를 사용하여 더할 수 있습니다.

하지만 반복되는 패턴을 더하고 싶다면 어떻게 해야 할까요?

다음과 같은 방법도 있습니다.

문자 `*` 숫자는 문자를 숫자만큼 반복하여 되돌려준다는 뜻입니다.

예를 들어 `"Hello" * 2`는 `HelloHello`입니다.

<iframe
  loading="lazy"
  title="Python IDLE Trinket"
  src="https://trinket.io/embed/python/54f740c487"
  height="400"
/>

import Quiz from '@site/src/components/Quiz';

<Quiz
  quiz={{
    quizTitle: '파이썬 퀴즈 6',
    quizSynopsis: '문자열 메서드 연습',
    nrOfQuestions: '3',
    questions: [
      {
        question: 'len("Python")을 실행하면 무엇이 출력됩니까?',
        questionType: 'text',
        answerSelectionType: 'single',
        answers: ['3', '4', '5', '6'],
        correctAnswer: '4',
        explanation:
          'Python에는 6개의 문자가 있고 len()은 문자열에서의 문자의 개수를 구하는 메서드이기 때문에 6이 출력됩니다.',
        point: '10',
      },
      {
        question: 'len("python"[0])를 실행하면 무엇이 출력됩니까?',
        questionType: 'text',
        answerSelectionType: 'single',
        answers: ['1', '2', '0', '6'],
        correctAnswer: '1',
        explanation:
          '고난이도 문제: "python"은 6개 문자를 가지고 있지만 "python"[0]는 사실 "p"이기 때문에 1이 출력됩니다.',
        point: '40',
      },
      {
        question:
          '"python"[1] * 3 + "python"[2] * 3 + "python"[3] * 3를 실행하면 무엇이 출력됩니까?',
        questionType: 'text',
        answerSelectionType: 'single',
        answers: ['yyyttthhh', 'ttthhhyyy', 'hhhtttyyy', 'ttttttttt'],
        correctAnswer: '1',
        explanation:
          '고고난이도 문제: "python"[1]*3 + "python"[2]*3 + "python"[3]*3은 "python"의 첫번째 문자를 3번 반복하고 두번째 문자를 3번 반복하고 세번째 문자를 3번 반복하여 "yyyttthhh"가 출력됩니다.',
        point: '50',
      },
    ],
  }}
/>
