[Python] 파이썬 문자열 공부
본문 바로가기
Python/Python 공부 정리

[Python] 파이썬 문자열 공부

by 쏠수있어ㅤ 2021. 6. 10.
반응형

 

파이선 코딩테스트 공부하다가 문자열 문제에서 계속 막혀서 문자열이 문제구나 ! 생각되어 공부겸 정리해보기👩‍💻

 

 

 

문자열 기초 

 

문자열은 ' ' 작은따옴표 안에 쓰거나 " " 큰 따옴표 안에 숫자 / 문자 / 기호를 쓰는 모든 것이 문자열이다. ' 로 시작하면 '로 끝나고 "로 시작하면 "로 끝나야 한다. 

파이썬 문자열의 특징은 사칙연산 중 더하기, 곱하기가 된다는 것이다 ! 

# \뒤에 특수문자로 취급되지 않게 
# 첫 따옴표 앞에 r을 붙이면 raw string 이 된다. 
print('C:\some\name')
print(r'C:\some\name')

print()

print('여러 줄 편하게 쓰기 ')
print('---')
print('''
Usage: thingy [OPTIONS]
      -h            Display this usage message
      -H hostname   Hostname to connect 
''')

print(' \ 를 쓰면 첫 째 줄은 print하지 않는다.')
print('----')
print('''\
Usage: thingy [OPTIONS]
      -h            Display this usage message
      -H hostname   Hostname to connect 
''')

print('문자열 더하기 곱하기가 가능')
print('Py' + 'thon' + ' is ' + 'what')
print('good이에요' * 3)

print('연속 문자열은 자동으로 이어줌')
print('a''b''c')  #abc
print('a' 'b' 'c')  #abc 띄어 쓰기 있어도! 
#변수or 표현식에는 위와같이 안된다. 
#변수 & 문자열 은 + 를 사용해서 가능
print('a'+'b')

print('문자열도 index가 가능하다 ')
print('asdf'[0]) # a
print('asdf'[2]) #d
print('asdf'[-1]) # f
#print('asdf'[12]) 오류! 

print('문자열 슬라이싱은 범위초과하는 수도 가능하다')
print('word'[2:20]) #rd
print('word'[20:])  #''

print('파이썬은 문자열 변경이 안된다.')

 

 

 

포맷 문자열

 

f를 쓰고 바로 이어서 (띄어쓰기없이) ' ' 문자열을 작성하면 포맷 문자열 쓸게 ~ 라는 뜻 같다. 그리고 ' '  or " "문자열 안에 { } 를 써서 변수를 넣어 나타낼 수 있다. 

year = 2021
month = 'June'
print(f'We are in {month} of {year}')

a = 23_234_234
b = 777.12345

print(str(123)) # str
print(repr(123123))
print(type (repr(123123))) # str

print('hello \n') #hello (엔터))
print(repr('hello \n')) #hello \n

import math
print(f'pi is {math.pi:.3f}.')

table={'a':123,'b':1234,'c':45634}
for key,value in table.items():
    print(f'{key:7} => {value:10d}')

a='monkeys'
print(f'There are {a}.')
print(f'There are {a!a}.') #ascii
print(f'There are {a!s}.') #str()
print(f'There are {a!r}.') # repr()
b='A'
print(f'A is {b!a}.')




 

 

 

 

 

 

 

 

 

 문자열 format() 매서드

아래 예시를 보면 {} 아무것도 없어도 뒤에 .format() 이후에 ( ) 괄호 안에 요소를 차례대로 쓸 수 있다. 인덱스 지정을 해서 순서대로 인덱스 넘버가 적힌 곳에 적용할 수도 있다. (아래 예시 3번째 줄) 

print('We are the {} not "{}"'.format('one', 'two'))
print('We are the {0} not "{1}"'.format('one', 'two'))
print('We are the {1} not "{0}"'.format('one', 'two'))
#print('We are the {2} not "{3}"'.format('one', 'two')) 오류

print('{this} is {how}'.format(this='All', how='black'))

print('{0} {1} How I {do}'.format('This','is',do='study'))

table={'a':123,'b':'2234','c':4534343}
print('b:{0[b]:s} c:{0[c]:d} a{0[a]:d}'.format(table))
table={'a':123,'b':'2234','c':4534343}
print('b:{b:s}, c:{c:d}, a:{a:d}'.format(**table))

 

 

 

문자열 기초 코딩테스트를 했을 때는 위와같은 지식으로도 풀 수 있었는데 초급용~ 중급용 코딩 테스트에 나오는 문자열의 지식은 조금 다른 것 같다. 응용력도 놓아야하고 이 외에 알면 쉽게 풀을 수 있는 매서드들이 참 많다.  ! 위의 문자열 공부도 하되 코딩테스트의 다른 고수들의 코드에서 배울 점을 찾아 공부해야겠다. 

반응형

댓글