Python/Syntax 2021. 8. 22. 14:45

문자열

  • 큰 따옴표나 작은 따옴표로 묶으면 문자열이다.

    • 여러 줄을 표현할 때는 끝에 \를 붙이고 줄바꿈을 하거나, 문자열을 삼중 따옴표(''', """)로 묶으면 된다.
  • 이스케이프 시퀀스(escape sequence, 확장열)

    확장열 설명
    \n 개행
    \t
    \" 큰따옴표
    \' 작은따옴표
    \ \ 문자
  • 아스키 코드

    • 다음과 같은 함수로 아스키 코드와 문자를 서로 변환할 수 있다.

      print(ord('a'))
      print(chr(98))
      for c in range(ord('A'), ord('Z')+1):
          print(chr(c), end='')
      
      ''' stdout
      97
      b
      ABCDEFGHIJKLMNOPQRSTUVWXYZ
      '''
  • 문자열 연산

    • 문자열 연결

      기호 설명
      + 문자열 연결
      * 문자열 반복

문자열 관리

문자열 분리

  • 인덱싱

    문자열[정수]
    • 인덱스는 앞에서부터 0, 1, 2, 3, ... 순서이다.

    • 뒤에서부터는 -1, -2, -3, ... 순서이다.

      s = "python"
      print(s[2])
      print(s[-2])
      
      ''' stdout
      t
      o
      '''
  • 슬라이싱

    문자열[begin:end:step]

메서드

메서드 설명
.find(str) str 문자열을 왼쪽부터 찾아 인덱스 반환, 없으면 -1 반환
.rfind(str) 오른쪽부터 find
.index(str) find와 동일, 단 없으면 예외 발생
.count(str) str 문자열 등장 횟수 반환
.startswith(str) str으로 시작하면 True
.endswith(str) str으로 끝나면 True
.isalpha() 모든 문자가 알파벳이면 True
.islower() 모든 문자가 소문자면 True
.isupper() 모든 문자가 대문자면 True
.isspace() 모든 문자가 whitespace면 True
.isalnum() 모든 문자가 알파벳이나 숫자면 True
.isdecimal() 모든 문자가 10진수면 True
.isdigit() 모든 문자가 특수문자 포함 정수면 True (3^2 같은거)
.isnumeric() 모든 문자가 특수문자 포함 정수면 True (1/2 특수문자 같은거)
.isidentifier() 모든 문자가 변수명, 클래스명 등의 식별자로 사용할 수 있면 True
.isprintable() 모든 문자가 출력 가능한 문자면 True
단어 in 문자열 문자열에 단어가 존재하면 True
단어 not in 문자열 문자열에 단어가 없으면 True
.lower() 소문자로
.upper() 대문자로
.swapcase() 대문자 <-> 소문자
.capitalize() 첫 글자만 대문자, 나머지는 소문자
.title() 모든 단어의 첫 글자를 대문자로, 나머지는 소문자로
.strip() 좌우 공백 제거
.lstrip() 왼쪽 공백 제거
.rstrip() 오른쪽 공백 제거
.split(구분자) 구분자를 기준으로 단어를 분리하여 리스트로 리턴한다. 기본값은 공백
.splitlines() 개행 문자를 기준으로 분리한다.
결합문자열.join(문자열) 문자열 사이에 결합문자열을 끼우고 연결하여 리턴한다.
.replace(기존 문자열, 대체 문자열) 기존 문자열을 대체 문자열로 교체
.center(폭 숫자) 좌우에 공백을 채워 폭을 맞춘다.
.ljust(폭 숫자) 왼쪽에 공백을 채워 폭을 맞춘다.
.rjust(폭 숫자) 오른쪽에 공백을 채워 폭을 맞춘다.
  • 예시

    name = "홍길동"
    if name.startswith("홍"):
        print("홍씨입니다.")
    if name.startswith("김"):
        print("김씨입니다.")
    file = "figure.jpg"
    if file.endswith(".jpg"):
        print("JPG 그림 파일입니다.")
    
    ''' stdout
    홍씨입니다.
    JPG 그림 파일입니다.
    '''
    s = "Good morning. my love KIM."
    print(s.lower())
    print(s.upper())
    print(s.swapcase())
    print(s.capitalize())
    print(s.title())
    print()
    s = "    angel    "
    print(s + "님")
    print(s.strip() + "님")
    print(s.lstrip() + "님")
    print(s.rstrip() + "님")
    
    ''' stdout
    good morning. my love kim.
    GOOD MORNING. MY LOVE KIM.
    gOOD MORNING. MY LOVE kim.
    Good morning. my love kim.
    Good Morning. My Love Kim.
    
        angel    님
    angel님
    angel    님
        angel님
    '''
    s = "짜장 짬뽕 탕수육"
    print(s.split())
    s2 = "서울->대전->대구->부산"
    cities = s2.split("->")
    print(cities)
    for city in cities:
        print(city)
    print()
    s ="._."
    print(s.join("대한민국"))
    
    '''stdout
    ['짜장', '짬뽕', '탕수육']
    ['서울', '대전', '대구', '부산']
    서울
    대전
    대구
    부산
    
    대._.한._.민._.국
    '''

포맷팅

포맷 설명
%d 정수
%f 실수
%s 문자열
%c 문자 하나
%h 16진수
%o 8진수
%% % 문자
%[-]폭[.유효자리수] 세세하게 설정할 때
$ 좌우 채움
> 왼쪽에 채움
< 오른쪽에 채움
  • 예시

    name = "길동"
    age = 16
    height = 162.5
    print("이름:{0:$<10s}, 나이:{1:>05d}, 키:{2:!<8.2f}".format(name, age, height))
    
    ''' stdout
    이름:길동$$$$$$$$, 나이:00016, 키:162.50!!
    '''
  • 파이썬3부터는 print(f"{number:%.2f}") 이런 식으로 사용한다.

'Python > Syntax' 카테고리의 다른 글

파이썬 반복문  (0) 2021.08.22
파이썬 조건문  (0) 2021.08.22
파이썬 연산자  (0) 2021.08.22
파이썬 변수  (0) 2021.08.22
파이썬 인수  (0) 2021.08.22