파이썬 기초 정리(자료형-문자열)

문자열

str1 = 'I am python'
str2 = "python"
str3 = """How are you?"""
str4 = '''Thank you'''
print(type(str1), type(str2), type(str3), type(str4)) # <class 'str'>
print(len(str1), len(str2), len(str3), len(str4)) # 11 6 12 10

#빈 문자열
str_t1 = ''
str_t2 = str()
print(type(str_t1), len(str_t1)) # <class 'str'> 0
print(type(str_t2), len(str_t2)) # <class 'str'> 0

#이스케이프 문자열
print("I'm boy") # I'm boy
print('I'm boy') # error
print('I\'m boy') # I'm boy, \를 사용하여 이스케이프

#Raw string
str_raw = r'Hi \t my name is donguk'
print(str_raw) # Hi \t my name is donguk, 이스케이프 문자열을 있는 그대로 출력
  • len() : 문자열의 길이를 구할 때 사용
  • 빈 문자열을 선언할 때 str() 사용하자
  • \ : 이스케이프 문자열, 자주 사용하는 이스케이프 문자열은 \n ( 개행 처리 ), \t( tab 처리 )
  • Raw string ( r’ ’ )은 이스케이프 문자열을 있는 그대로 출력.
  • Python에서 = 뒤에오는 \ 는 변수에 값을 바인딩 한다는 의미
#Multi line
str_multi = \
''' # '''또는 """
Hi multi line
'''
print(str_multi) # Hi multi line

문자열 연산

str_o1 = 'Python'
str_o2 = 'Apple'

print(str_o1 * 3) # PythonPythonPython
print(str_o1 + str_o2) # PythonApple
print('y' in 'Python') # Python 문자열에 y가 있어?  > True
print('P' not in 'Apple') # in은 대소문자를 구분한다. > True
  • 문자열의 곱하기는 문자열에 해당 정수형 만큼 반복
  • a in b : in 은 a가 b에 포함 됐는지 따짐. 시퀀스 자료형은 in 사용 가능
  • 반대로 a not in b 는 없는지 따짐

문자열 형 변환

print(str(66), type(str(66))) # 66 <class 'str'>
print(str(True), type(str(True))) # True <class 'str'>
  • str( someting variable ) : 문자열로 형 변환

문자열 함수 ( 일부만 )

str_o1 = 'python'
print(str_o1.capitalize()) # Python
print(str_o1.endsWith('a')) # False
print(str_o1.replace('thon','good')) # pygood
print(sorted(str_o1)) # ['p', 'h', 'n', 'o', 't', 'y']
print(str_o1.split('y')) # ['p', 'thon']

print(reversed(str_o1)) # <reversed object at 0x1071292d0>, reversed 객체를 반환
print(list(reversed(str_o1))) # ['n', 'o', 'h', 't', 'y', 'p']

print(dir(str_o1)) # __iter__ 만 참고..
  • string.capitalize() : var의 첫번째 글자를 대문자로 변경
  • string.endsWith( variable ) : string 변수의 끝이 variable 으로 끝나면 True, 아니면 False
  • string.replace(a,b) : variable 변수의 a 부분이 있으면 b로 변경
  • sorted(variable) : 문자열의 각 부분을 정렬하여 리스트 형태로 반환
  • string.split( separator ) : 문자열을 seperator 기준으로 잘라서 결과를 리스트 형태로 반환
  • reversed( variable ) : reversed 객체 반환

    • 반환된 객체를 list() 의 인자로 전달하면 순서가 거꾸로 바뀐 variable 을 리스트 형태로 반환
    • 반환된 객체를 tuple() 의 인자로 전달하면 순서가 거꾸로 바뀐 variable 을 튜플 형태로 반환
    • 참고! <class ‘list’>.reverse() reverse() 함수는 list 타입 에서만 제공하는 함수이다. ( list 순서를 거꾸로 리턴)
  • dir(variable) : 정의된 모듈의 이름이 리스트 형태로 반환. 반환된 리스트의 인자로 iter 가 있다면 이 변수는 시퀀스 이다.

    • 문자열은 시퀀스다. 따라서 for문 사용 가능
    for i in str_o1 :
    print(i) # 한 글자씩 출력

문자열 슬라이싱

str_s1 = 'Nice Python'
print(str_s1[0:3]) # index 0 부터 index 3-1 가지 슬라이싱 > 'Nic'
print(str_s1[5:]) # 'Python'
print(str_s1[:len(str_s1)]) # 'Nice Python'

print(str_s1[-5:]) # 'ython'
print(str_s1[1:-2]) # 'ice Pyth'
  • variable[startIndex : endIndex : jumpCount] : variable을 startIndex 부터 endIndex-1 까지 slice 한다.

    • endIndex를 생략하면 끝까지 계산한다.
    • startIndex를 생략하면 처음부터 가져온다.
    • jimpCount가 있다면 jumpCount 만큼 뛰어서 계산한다.
    print(str_s1[:len(str_s1):2]) # 'Nc yhn'
    print(str_s1[::2]) # 'Nc yhn'
  • index가 음수로 오면 끝에서 부터 계산한다 ( 마지막이 -1 )
print(str_s1[::-1]) # -1 이니까 순서가 역순으로 됌 > 'nohtyP eciN' ( 문자열 순서 바꿀 때 사용하면 좋을까? )
print(str_s1[::-2]) # 'nhy cN'

아스키 코드( 또는 유니코드 )

a = 'z'
print(ord(a)) # 122
print(chr(122)) # 'z'

파이선 인터프리터가 아스키 코드를 참고하여 문자열로 처리하여 화면에 문자로 표시.

  • ord( variable ) : variable의 아스키 코드 값 리턴
  • chr( 아스키코드 값 )  : 아스키코드에 해당하는 문자 리턴

Written by@[HongDongUk]
공부한 것을 소소하게 적는 블로그.

GitHubFacebook