반응형
파이선 코딩테스트 공부하다가 문자열 문제에서 계속 막혀서 문자열이 문제구나 ! 생각되어 공부겸 정리해보기👩💻
문자열 기초
문자열은 ' ' 작은따옴표 안에 쓰거나 " " 큰 따옴표 안에 숫자 / 문자 / 기호를 쓰는 모든 것이 문자열이다. ' 로 시작하면 '로 끝나고 "로 시작하면 "로 끝나야 한다.
파이썬 문자열의 특징은 사칙연산 중 더하기, 곱하기가 된다는 것이다 !
# \뒤에 특수문자로 취급되지 않게
# 첫 따옴표 앞에 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))
문자열 기초 코딩테스트를 했을 때는 위와같은 지식으로도 풀 수 있었는데 초급용~ 중급용 코딩 테스트에 나오는 문자열의 지식은 조금 다른 것 같다. 응용력도 놓아야하고 이 외에 알면 쉽게 풀을 수 있는 매서드들이 참 많다. ! 위의 문자열 공부도 하되 코딩테스트의 다른 고수들의 코드에서 배울 점을 찾아 공부해야겠다.
반응형
'Python > Python 공부 정리' 카테고리의 다른 글
[Python]파이썬, 왜 리스트대신 큐/ 데크 deque 를 쓸까? (0) | 2021.06.17 |
---|---|
[Python] 전역 변수 지역 변수 사용법 총 정리/ global, nonlocal (2) | 2021.06.13 |
[Python] 파이썬 리스트 [::] 사용법 예제 extended slices (0) | 2021.06.09 |
[Python] 최소공배수, 최대공약수란? 파이썬 알고리즘으로 쉽게 구현하기 / for문, 유클리드 호제법 이용 (4) | 2021.06.03 |
[Python] 파이썬 2진수, 8진수, 10진수, 16진수 변환 총정리 bin(), oct(), hex(), str(), format 이용 (0) | 2021.06.01 |
댓글