string.ascii_letters

string.ascii_lowercase

string.ascii_uppercase

string.digits

digits = ''
for n in range(10):
    digits += str(n)
    
print(digits)

print('{}, {}'.format('hello', 'world'))

print(u'{}, {}'.format(u'안녕', u'세계'))

print('{:,}'.format(1000000000000000))

n = 1000000000000000
# 세 번마다 쉼표 삽입
n_comma = ''
for i, n_str in enumerate(str(n)[::-1]):
    #print(i, n_str)
    n_comma += str(n_str)
    if i%3 == 0:
        n_comma += ','
print(n_comma[::-1])

"""
Explanation: 문자열 상수
End of explanation
"""


from string import Template

template = Template('$who likes $what')
template.substitute(who='SJ', what='Python')

"""
Explanation: Template
End of explanation
"""


text = 'Hello, World!'

text.split()

text.split(',')

string.capwords('HelloWorld')

"""
Explanation: 문자열 분해 --> list
End of explanation
"""


text = 'big python, python for big data'

string.find(text, 'python')

string.find(text, 'python', 10)

text[4]

string.rfind(text, 'python')

text[12]

if string.find(text, 'python') == string.rfind(text, 'python'):
    print('유일한 단어')
else:
    print('해당 단어가 두 개 이상')

"""
Explanation: 문자열 검색
End of explanation
"""


text = 'big python, python for big data. Python is the best!'
text_kr = u'빅 파이썬, 빅데이터를 위한 파이썬. 파이썬이 최고'

string.lower('HELLO')

string.find(text, 'javascript')

string.find(text_kr, u'파이썬')

text = 'big python, python for big data. Python is the best!'
string.find(text, 'python', 18)

text = 'big python, python for big data. Python is the best!'

text_lower = string.lower(text)

start_index_list = []
start_idx = 0
while start_idx < len(text_lower):
    idx = string.find(text_lower, 'python', start_idx)
    if idx == -1:
        break
    start_index_list.append(idx)
    start_idx = idx+len('python')
    
print(start_index_list)

text = 'big python, python for big data. Python is the best!'
text.lower().count('python')

"""
Explanation: 연습문제
다음과 같은 문자열이 저장된 변수에서 python 또는 Python이라는 문자열의 시작 인덱스를 모두 포함한 리스트를 반환하시오.
text = 'big python, python for big data. Python is the best!'
text_kr = '빅 파이썬, 빅데이터를 위한 파이썬. 파이썬이 최고'
End of explanation
"""


string.replace(text, 'python', 'javascript')

string.replace(text, 'python', '')

string.replace(text, 'python', '', 1)

"""
Explanation: 연습문제
python이라는 단어만 제외하고 문장을 다시 구성.
text = 'big python, python for big data. Python is the best!'
-->'big , for big data. is the best!'
End of explanation
"""


text = """이성주의 전화번호는 010-1234-5678입니다. 
이메일은 seongjoo@codebasic.co입니다. 김성주의 전화번호는 010-4321-8765입니다."""

import re
phonePattern = re.compile(r'\d{3}-\d{4}-\d{4}')
phonePattern.findall(text)

"""
Explanation: 정규 표현식 (regular expression)
해결하고자 하는 문제: 텍스트에서 특정한 패턴의 탐색, 추출
End of explanation
"""


