Python

Python. day 2 - 문자열에 대해 알아보자

머용? 2023. 12. 12. 09:29

1. 문자열

: 문자열(string)이란 문자, 단어 등으로 구성된 문자들의 집합을 말한다. 예시로는 다음과 같다.

"life is short"
'Pepsi zero better than coke zero'
"1234abcd"
"12345678"
  • 숫자도 큰 따옴표나 작은 따옴표로 둘러싸면 문자열로 인식한다.
  • 문자열을 만드는 4가지 방법

    1. 큰따옴표로 양쪽 둘러싸기
      "Hello World"
    2. 작은따옴표로 양쪽 둘러싸기
      'Python is fun'
    3. 큰따옴표 3개를 연속으로 써서 양쪽 둘러싸기
      """Life is too short, You need python"""
    4. 작은따옴표 3개를 연속으로 써서 양쪽 둘러싸기
      '''Life is too short, You need python'''
  • 문자열에 작은 따옴표 포함하기

    • 문자열을 만들때 큰 따옴표를 사용해야한다.

    • 작은 따옴표로 만든 문자열안에 작은 따옴표를 사용하고 싶다면 ' 을 사용하자.

      blog = "Yong's develop"
      blog = 'Yong\'s develop'
  • 문자열에 큰 따옴표 포함하기

    • 문자열을 만들때 작은 따옴표를 사용해야한다.

    • 큰 따옴표로 만든 문자열안에 큰 따옴표를 사용하고 싶다면 " 을 사용하자.

      blog = 'i want."follow my blog"'
      blog = "i want.\"follow my blog\""

2. 복습하는 문자열의 연산

  • 문자열의 덧셈

    • 입력

      "life is too short." + "try something"
    • 출력

      "life is too short.try something"
  • 문자열의 곱셈

    • 입력
      "btc will be 100k."*3
    • 출력
      "btc will be 100k.btc will be 100k.btc will be 100k."

3. 문자열의 길이구하기, 문자열 인덱싱, 문자열 슬라이싱

  • 문자열의 길이를 구하는 함수는 len()이다

    • 입력

      blog = 'i want."follow my blog"'
      len(blog)
    • 출력

      23
  • 문자열 인덱싱
    : 인덱싱(indexing)이란 무언가를 가리킨다는 뜻으로 인덱스(index)란 문자열에 부여된 번호를 의미한다.

위의 이미지 처럼 문자열내의 요소들은 0번부터 (문자열의 길이 -1) 까지의 번호를 부여받게 된다.

  • 문자열 내에 어떤 글자가 포함되어 있는지 확인할 수 있는 명령은 in 으로 True or False 의 값을 가져온다. 포함되어있으면 True, 포함되지 않으면 False이다.

  • 인덱스에 해당된 요소를 가져오는 방법은 변수명[index] 이다. 변수에 들어있는 문자열에서 index에 해당된 요소를 가져온다.

  • 예시

    • 입력

      character_string = "hi hello world!"
      "h" in character_string
      character_string[1]
    • 출력

      True
      'i'
  • index() 메서드를 통해서 내가 원하는 원소의 인덱스도 알아낼 수 있다. 원하는 문자가 존재하지 않으면 ValueError를 나타낸다. 또한, 중복되는 원소의 경우 제일 앞의 인덱스를 가져온다.

  • 예시

    • 입력

      character_string = "hi hello world!"
      character_string.index('h')
    • 출력

      0

      'h' 라는 문자가 0번째 인덱스와 3번째 인덱스에 두개가 들어있음에도 처음 인덱스인 0 을 가져오는 모습을 볼 수 있다.

  • find() 메서드를 통해서도 인덱스를 가져올 수 있는데, 이 메서드의 경우는 원하는 문자가 존재하지 않으면 -1을 반환한다. 마찬가지로 중복되는 원소의 경우 제일 앞의 인덱스를 가져오게 된다.

  • 예시

    • 입력

      character_string = "hi hello world!"
      character_string.find('l')
    • 출력

      5

      'h' 라는 문자가 0번째 인덱스와 3번째 인덱스에 두개가 들어있음에도 처음 인덱스인 0 을 가져오는 모습을 볼 수 있다.

  • 예시

    • 입력

      character_string = "hi hello world!"
      character_string.find('a')
    • 출력

      -1

문자열 내에 'a'가 존재하지 않기 때문에 -1을 반환하는 모습이다.

  • 문자열 슬라이싱
    : 슬라이싱(slicing)은 무엇인가를 ‘잘라 낸다’라는 의미이다. 문자열 내에서 한개의 요소만 가져오는 것이 아니라, 범위를 지정해서 여러개의 요소를 잘라내 가져올 수 있다. 변수명[start_index : end_index] 의 형태나 변수명[start_index : end_index : step]형태로 가능하다.

  • 변수명[start_index : end_index]

    • 예시

      • 입력

        character_string = "hi hello world!"
        character_string[3:8] #인덱스 3번째 부터 8-1번째 전까지 요소들을 가져옴
      • 출력

        'hello'

        또한, start_index 나 end_index 를 넣지 않고도 출력이 가능하다.

      • 입력

        character_string = "hi hello world!"
        character_string[:8] #시작부터 8-1번째 전까지 요소들을 가져옴
        character_string[3:] #인덱스 3번째 부터 끝까지 요소들을 가져옴
      • 출력

        'hi hello'
        'hello world!'
  • 변수명[start_index : end_index : step]
    : step에 들어간 디폴트값에 따라서 거꾸로 출력하기, n칸 띄워서 출력하기 등 할 수 있다.

    • 예시
      • 입력
        character_string = "hi hello world!"
        character_string[0:15:2] #인덱스 0번째 부터 15-1번째 까지 요소들을 2칸씩 띄워서 가져옴
      • 출력
        'h el ol!'
  • 거꾸로 출력하는 법
    : step에 -1을 넣어서 거꾸로 출력할 수 있다.

    • 예시
      • 입력
        character_string = "hi hello world!"
        character_string[::-1] 
      • 출력
        '!dlrow olleh ih'