1. 문자열이란
1sentence1 = "나는 소년입니다."2print(sentence1)34sentence2 = "파이썬은 쉬워요."5print(sentence2)67sentence1 = "나는 소년입니다."8print(sentence1, type(sentence1)) # 나는 소년입니다. <class 'str'>9sentence2 = "파이썬은 쉬워요."10print(sentence2, type(sentence2))1112sentence3 = """13나는 소년이고,14파이썬은 쉬워요.15"""16print(sentence3)
2. 슬라이싱 - 원하는 만큼 문자열 자르기
1""" 슬라이싱2[이상:미만:간격]3"""4jumin = "990229-1234567"5print("성별 식별번호 : " + jumin[7]) # 성별 식별번호 : 1678jumin = "990229-1234567"9print("연 : " + jumin[0:2]) # 0부터 2 직전까지(0, 1), 연 : 9910print("월 : " + jumin[2:4]) # 2부터 4 직전까지(2, 3), 월 : 0211print("일 : " + jumin[4:6]) # 4부터 6 직전까지(4, 5), 일 : 29121314# 처음부터 6 직전까지 -> jumin[0:6]과 같음, 생년월일 : 99022915print("생년월일 : " + jumin[:6])1617# 7부터 끝까지 -> jumin[7:14]와 같음, 주민등록번호 뒷자리 : 123456718print("주민등록번호 뒷자리 : " + jumin[7:])1920# 뒤에서 7번째 위치부터 끝까지, 주민등록번호 뒷자리(뒤에서부터) : 123456721print("주민등록번호 뒷자리(뒤에서부터) : " + jumin[-7:])
3. 함수로 문자열 처리
3.1 대소문자
1python = "Python is Amazing"23print(python.lower()) # 전체 소문자로 변환4print(python.upper()) # 전체 대문자로 변환5print(python[0].isupper()) # 인덱스 0에 있는 값이 대문자인지 확인, True6print(python[1:3].islower()) # 인덱스 1부터 2에 있는 값이 소문자인지 확인7print(python.replace("Python", "Java")) # Python을 Java로 바꾸기
3.2 찾기, 인덱스
1python = "Python is Amazing"23find = python.find("n") # 처음 발견한 n의 인덱스4print(find) # 'Python'에서 n(인덱스 5)56find = python.find("n", find + 1) # 인덱스 6 이후부터 찾아 처음 발견한 n의 인덱스7print(find) # ' is Amazing'에서 n(인덱스15)89find = python.find("Java") # Java가 없으면 -1을 반환(출력)한 후 프로그램 계속 수행10print(find)1112index = python.index("n") # 처음 발견한 n의 인덱스13print(index) # 'Python'에서 n, 51415index = python.index("n", index + 1) # 인덱스 6 이후부터 찾아 처음 발견한 n의 인덱스16print(index) # ' is Amazing'에서 n, 151718index = python.index("n", 2, 6) # 인덱스 2부터 6 직전까지 찾아 처음 발견한 n의 인덱스19print(index) # 'thon'에서 n(인덱스 5)2021# index = python.index("Java") # Java가 없으면 오류가 발생하며 프로그램 종료22print(index)
3.3 개수 길이
1python = "Python is Amazing"23print(python.count("n")) # 24print(python.count("v")) # 0567python = "Python is Amazing"89print(len(python)) # 17
4. 문자열 포매팅
1print("ab" + "ab")2print("ab", "ab")34# 👉 4.4.1 방법 15print("나는 %d살입니다." % 20)6print("나는 %s을 좋아합니다." % "파이썬")7print("Apple은 %c로 시작해요." % "A")8print("나는 %s살입니다." % 20) # %s로도 정수값 표현 가능9print("나는 %s색과 %s색을 좋아해요." % ("파란", "빨간")) # 값이 여럿일 때1011# 👉 4.4.2 방법 212print("나는 {}살입니다.".format(20))13print("나는 {}색과 {}색을 좋아해요.".format("파란", "빨간"))14print("나는 {0}색과 {1}색을 좋아해요.".format("파란", "빨간"))15print("나는 {1}색과 {0}색을 좋아해요.".format("파란", "빨간"))16print("나는 {age}살이며, {color}색을 좋아해요.".format(age=20, color="빨간"))17print("나는 {age}살이며, {color}색을 좋아해요.".format(color="빨간", age=20))1819# 👉 4.4.3 방법 3, (v3.6 이상~ 부터 가능)20age = 2021color = "빨간"22print(f"나는 {age}살이며, {color}색을 좋아해요.")
5. 문자 탈출
1# 👉 4.5.1 \n : 줄바꿈2print("백문이 불여일견 백견이 불여일타")3# print("백문이 불여일견 # SyntaxError 발생4# 백견이 불여일타")5print("백문이 불여일견\n백견이 불여일타")678# 👉 4.5.2 문장 내에서 따옴표 표시9# print("저는 "나도코딩"입니다.")10print("저는 '나도코딩'입니다.") # 작은 따옴표 표시11# 또는12print('저는 "나도코딩"입니다.') # 큰 따옴표 표시1314print('저는 "나도코딩"입니다.')15print("저는 '나도코딩'입니다.")161718# 👉 4.5.3 탈출문자, \"\" : 문장 내에서 따옴표19# 👉 \\ : 문장 내에서 \로 바뀜20# print("C:\Users\Nadocoding\Desktop\PythonWorkspace") # SyntaxError 발생21print("C:\\Users\\Nadocoding\\Desktop\\PythonWorkspace")22print(r"C:\Users\Nadocoding\Desktop\PythonWorkspace")232425# 👉 4.5.4 \r : 커서를 맨 앞으로 이동26print("Red Apple\rPine") # PineApple2728# 👉 4.5.5 \b : 백스페이스 역할(1글자 지우는 역할)29print("Redd\bApple") # RedApple3031# 👉 4.5.6 \t : 키보드 탭역할 (2 or 칸씩 역할함)32print("Red\tApple") # Red Apple
6. 퀴즈. 비밀번호 만들기
1"""2Quiz) 사이트별로 비밀번호를 만들어주는 프로그램을 작성하시오.34e.g.) http://naver.com56규칙1 : http:// 부분은 제외 => naver.com7규칙2 : 처음 만나는 점(.) 이후 부분은 제외 => naver8규칙3 : 남은 글자 중 처음 세자리 + 글자 갯수 + 글자 내 'e'의 갯수 + "!"로 구성9(nav) (5) (1) (!)1011e.g.) 생성된 비밀번호 : nav51!12"""13# url = "http://naver.com"1415url = "http://daum.net" # dau40!16# url = "http://google.com" # goo61!17# url = "http://youtube.com" # you71!1819my_str = url.replace("http://", "")2021# naver.com일 때 my_str.index(".")의 결과는 5이므로 다음 문장은 my_str = mystr[0:5]와 같음22my_str = my_str[: my_str.index(".")]2324password = my_str[:3] + str(len(my_str)) + str(my_str.count("e")) + "!"2526print("{0}의 비밀번호는 {1}입니다.".format(url, password))