문자열 처리 함수
myName = 'My name is Electronic Fox'
myName.lower() #변수 myName에 저장된 문자열을 모두 소문자로 바꿔준다.
myName.upper() #변수 myName에 저장된 문자열을 모두 대문자로 바꿔준다.
myName[0].isupper() #변수 myName에 저장된 문자열의 0번째 자리의 글자가 대문자인가? True가 출력.
len(myName) #변수 myName에 저장된 문자열의 길이를 반환해준다. 25가 출력.
myName.replace('Electronic Fox', 'Fox') #변수 fox 안에 있는 Electronic Fox라는 단어를 Fox로 바꿔준다.
index = myName.index('e') #변수 myName 안에 있는 e라는 글자가 몇 번째 위치에 있는지 출력해준다. 6이 출력.
myName.index('e', index + 1) #위에서 찾은 위치인 6에서 시작해서 또 다른 e의 위치를 찾는다. 13이 출력.
#index 함수는 찾고 싶은 문자가 변수에 포함되어 있지 않을 경우, 에러문구를 띄우며 프로그램을 중단한다.
myName.find('e') #변수 myName 안에 있는 e라는 글자가 몇 번째 위치에 있는지 출력해준다. 마찬가지로 6이 출력
myName.find('z') #z라는 글자는 myName 변수에 포함되어 있지 않기 때문에 -1을 반환.
#find 함수는 찾고 싶은 문자가 변수에 포함되어 있지 않을 경우, -1을 반환하며 계속 진행된다.
myName.count('e') #변수 myName 안에 있는 e라는 글자의 개수를 반환한다. 대, 소문자를 구분하므로 2가 출력
변수처리된 문자열 슬라이싱
jm = '971104-1234567' #따옴표를 이용해서 문자열str속성으로 만든다.
'성별 : ' + jm[7] #컴퓨터는 숫자를 0부터 세기 때문에 8번째 문자를 가져오기 위해서는 7이 필요하다.
jm[0:2] + '년생' #0번째부터 2미만(직전)까지
jm[2:4] + '월생' #2번째부터 4미만(직전)까지
jm[4:6] + '일생' #4번째부터 6미만(직전)까지
'생년월일 : ' + jm[:6] #처음(0번째)부터 6미만(직전)까지.
'뒷 7자리 : ' + jm[7:] #7번째부터 끝까지.
'뒷 7자리 : ' + jm[-7:] #뒤에서 7번째자리부터 끝까지.
문자열 포맷
print('저는 %d살입니다.' % 26) #'d'는 정수값을 str로 바꿔서 출력해준다.
print('저는 %s를 좋아합니다.' % '복숭아') #%'s'에는 문자열 속성의 값을 넣을 수 있다.
print('Fox는 %c로 시작합니다.' % 'F') #'c'에는 알파벳 한 글자만 들어갈 수 있다.
print('저의 취미는 %s과 %s입니다.' % ('웹서핑', '쇼핑')) #괄호 안의 문자열이 순서대로 들어가게 된다.
print('저는 %d살이며, %s를 좋아합니다.' % (26, '복숭아')) #혼용도 가능
# 또 다른 방법
print('저는 {}살입니다.'.format(26))
print('저의 취미는 {}과 {}입니다.'.format('웹서핑', '쇼핑')) #결과는 같다.
print('저의 취미는 {0}과 {1}입니다.'.format('웹서핑', '쇼핑')) #결과는 같다.
print('저의 취미는 {1}과 {0}입니다.'.format('웹서핑', '쇼핑')) #1번째의 쇼핑이 앞에 들어가게 된다.
print('저는 {age}살이며, {fruit}를 좋아합니다.'.format(age = 26, fruit = '복숭아'))
#또또또 다른 방법
age = 26
fruit = '복숭아'
print(f'저는 {age}살이며, {fruit}를 좋아합니다.')
탈출문자
탈출문자는 문자열 출력을 보다 간단하게 도와줍니다.
# \n : 줄바꿈
print('저의 이름은 여우입니다.\n저는 복숭아를 좋아합니다.')
# \' 혹은 \" : 따옴표의 문자열 인식
print('저의 이름은 \'전자여우\'입니다.')
# \\ : 역슬래시(\)의 문자열 인식
print('\\를 문자열로 인식 시키게 하고 싶으면 두 번 넣으면 된다.')
# \r : 커서를 맨 앞으로 이동해서 덮어쓰기
print('Red Apple\rPine') #'Pine'이 'Red '부분을 잡아먹고 PineApple로 출력
# \b : 한 글자 삭제
print('Redd\bApple') #RedApple
# \t : 탭(4칸 띄어쓰기)
print('Red\tApple') #Red Apple
활용편
#사이트별로 비밀번호를 만들어 주는 프로그램
#ex) https://www.tistory.com
#규칙1 : https://www.부분 제외
#규칙2 : .com 부분 제외
#규칙3 : 남은 글자 중 처음 만나는 3글자 + 사이트 글자 수 + 글자 내 t의 개수 + '!'로 구성
url = 'http://www.tistory.com'
web = url.replace('http://www.', '') #규칙1. 앞부분 없애기 (무로 대체)
web = web[:web.index('.')] #규칙2. 점 직전까지 슬라이싱
password = web[:3] + str(len(web)) + str(web.count('t')) + '!'
print('생성된 비밀번호 :', password)
#조금 더 자세히 알려주고 싶다면
print('생성된 \'{}\'의 비밀번호는 \'{}\' 입니다.'.format (url, password))
댓글