🎉 berenickt 블로그에 온 걸 환영합니다. 🎉
Lang
python
03-문자열

1. 문자열이란

1
sentence1 = "나는 소년입니다."
2
print(sentence1)
3
4
sentence2 = "파이썬은 쉬워요."
5
print(sentence2)
6
7
sentence1 = "나는 소년입니다."
8
print(sentence1, type(sentence1)) # 나는 소년입니다. <class 'str'>
9
sentence2 = "파이썬은 쉬워요."
10
print(sentence2, type(sentence2))
11
12
sentence3 = """
13
나는 소년이고,
14
파이썬은 쉬워요.
15
"""
16
print(sentence3)

2. 슬라이싱 - 원하는 만큼 문자열 자르기

1
""" 슬라이싱
2
[이상:미만:간격]
3
"""
4
jumin = "990229-1234567"
5
print("성별 식별번호 : " + jumin[7]) # 성별 식별번호 : 1
6
7
8
jumin = "990229-1234567"
9
print("연 : " + jumin[0:2]) # 0부터 2 직전까지(0, 1), 연 : 99
10
print("월 : " + jumin[2:4]) # 2부터 4 직전까지(2, 3), 월 : 02
11
print("일 : " + jumin[4:6]) # 4부터 6 직전까지(4, 5), 일 : 29
12
13
14
# 처음부터 6 직전까지 -> jumin[0:6]과 같음, 생년월일 : 990229
15
print("생년월일 : " + jumin[:6])
16
17
# 7부터 끝까지 -> jumin[7:14]와 같음, 주민등록번호 뒷자리 : 1234567
18
print("주민등록번호 뒷자리 : " + jumin[7:])
19
20
# 뒤에서 7번째 위치부터 끝까지, 주민등록번호 뒷자리(뒤에서부터) : 1234567
21
print("주민등록번호 뒷자리(뒤에서부터) : " + jumin[-7:])

3. 함수로 문자열 처리

3.1 대소문자

1
python = "Python is Amazing"
2
3
print(python.lower()) # 전체 소문자로 변환
4
print(python.upper()) # 전체 대문자로 변환
5
print(python[0].isupper()) # 인덱스 0에 있는 값이 대문자인지 확인, True
6
print(python[1:3].islower()) # 인덱스 1부터 2에 있는 값이 소문자인지 확인
7
print(python.replace("Python", "Java")) # Python을 Java로 바꾸기

3.2 찾기, 인덱스

1
python = "Python is Amazing"
2
3
find = python.find("n") # 처음 발견한 n의 인덱스
4
print(find) # 'Python'에서 n(인덱스 5)
5
6
find = python.find("n", find + 1) # 인덱스 6 이후부터 찾아 처음 발견한 n의 인덱스
7
print(find) # ' is Amazing'에서 n(인덱스15)
8
9
find = python.find("Java") # Java가 없으면 -1을 반환(출력)한 후 프로그램 계속 수행
10
print(find)
11
12
index = python.index("n") # 처음 발견한 n의 인덱스
13
print(index) # 'Python'에서 n, 5
14
15
index = python.index("n", index + 1) # 인덱스 6 이후부터 찾아 처음 발견한 n의 인덱스
16
print(index) # ' is Amazing'에서 n, 15
17
18
index = python.index("n", 2, 6) # 인덱스 2부터 6 직전까지 찾아 처음 발견한 n의 인덱스
19
print(index) # 'thon'에서 n(인덱스 5)
20
21
# index = python.index("Java") # Java가 없으면 오류가 발생하며 프로그램 종료
22
print(index)

3.3 개수 길이

1
python = "Python is Amazing"
2
3
print(python.count("n")) # 2
4
print(python.count("v")) # 0
5
6
7
python = "Python is Amazing"
8
9
print(len(python)) # 17

4. 문자열 포매팅

1
print("ab" + "ab")
2
print("ab", "ab")
3
4
# 👉 4.4.1 방법 1
5
print("나는 %d살입니다." % 20)
6
print("나는 %s을 좋아합니다." % "파이썬")
7
print("Apple은 %c로 시작해요." % "A")
8
print("나는 %s살입니다." % 20) # %s로도 정수값 표현 가능
9
print("나는 %s색과 %s색을 좋아해요." % ("파란", "빨간")) # 값이 여럿일 때
10
11
# 👉 4.4.2 방법 2
12
print("나는 {}살입니다.".format(20))
13
print("나는 {}색과 {}색을 좋아해요.".format("파란", "빨간"))
14
print("나는 {0}색과 {1}색을 좋아해요.".format("파란", "빨간"))
15
print("나는 {1}색과 {0}색을 좋아해요.".format("파란", "빨간"))
16
print("나는 {age}살이며, {color}색을 좋아해요.".format(age=20, color="빨간"))
17
print("나는 {age}살이며, {color}색을 좋아해요.".format(color="빨간", age=20))
18
19
# 👉 4.4.3 방법 3, (v3.6 이상~ 부터 가능)
20
age = 20
21
color = "빨간"
22
print(f"나는 {age}살이며, {color}색을 좋아해요.")

5. 문자 탈출

1
# 👉 4.5.1 \n : 줄바꿈
2
print("백문이 불여일견 백견이 불여일타")
3
# print("백문이 불여일견 # SyntaxError 발생
4
# 백견이 불여일타")
5
print("백문이 불여일견\n백견이 불여일타")
6
7
8
# 👉 4.5.2 문장 내에서 따옴표 표시
9
# print("저는 "나도코딩"입니다.")
10
print("저는 '나도코딩'입니다.") # 작은 따옴표 표시
11
# 또는
12
print('저는 "나도코딩"입니다.') # 큰 따옴표 표시
13
14
print('저는 "나도코딩"입니다.')
15
print("저는 '나도코딩'입니다.")
16
17
18
# 👉 4.5.3 탈출문자, \"\" : 문장 내에서 따옴표
19
# 👉 \\ : 문장 내에서 \로 바뀜
20
# print("C:\Users\Nadocoding\Desktop\PythonWorkspace") # SyntaxError 발생
21
print("C:\\Users\\Nadocoding\\Desktop\\PythonWorkspace")
22
print(r"C:\Users\Nadocoding\Desktop\PythonWorkspace")
23
24
25
# 👉 4.5.4 \r : 커서를 맨 앞으로 이동
26
print("Red Apple\rPine") # PineApple
27
28
# 👉 4.5.5 \b : 백스페이스 역할(1글자 지우는 역할)
29
print("Redd\bApple") # RedApple
30
31
# 👉 4.5.6 \t : 키보드 탭역할 (2 or 칸씩 역할함)
32
print("Red\tApple") # Red Apple

6. 퀴즈. 비밀번호 만들기

1
"""
2
Quiz) 사이트별로 비밀번호를 만들어주는 프로그램을 작성하시오.
3
4
e.g.) http://naver.com
5
6
규칙1 : http:// 부분은 제외 => naver.com
7
규칙2 : 처음 만나는 점(.) 이후 부분은 제외 => naver
8
규칙3 : 남은 글자 중 처음 세자리 + 글자 갯수 + 글자 내 'e'의 갯수 + "!"로 구성
9
(nav) (5) (1) (!)
10
11
e.g.) 생성된 비밀번호 : nav51!
12
"""
13
# url = "http://naver.com"
14
15
url = "http://daum.net" # dau40!
16
# url = "http://google.com" # goo61!
17
# url = "http://youtube.com" # you71!
18
19
my_str = url.replace("http://", "")
20
21
# naver.com일 때 my_str.index(".")의 결과는 5이므로 다음 문장은 my_str = mystr[0:5]와 같음
22
my_str = my_str[: my_str.index(".")]
23
24
password = my_str[:3] + str(len(my_str)) + str(my_str.count("e")) + "!"
25
26
print("{0}의 비밀번호는 {1}입니다.".format(url, password))