diff --git a/Korean/04_strings_ko.md b/Korean/04_strings_ko.md
new file mode 100644
index 0000000..b2d92de
--- /dev/null
+++ b/Korean/04_strings_ko.md
@@ -0,0 +1,591 @@
+
+ 30 Days Of Python: Day 4 - Strings
+
+Author: Asabeneh Yetayeh
Second Edition: July, 2021
+
+
+[<< Day 3](../03_Day_Operators/03_operators.md) | [Day 5 >>](../05_Day_Lists/05_lists.md)
+
+
+
+- [Day 4](#day-4)
+ - [문자열](#strings)
+ - [문자열 만들기](#creating-a-string)
+ - [문자열 연결](#string-concatenation)
+ - [문자열의 이스케이프 시퀀스](#escape-sequences-in-strings)
+ - [문자열 포매팅](#string-formatting)
+ - [올드 스타일 문자열 포매팅(% 연산자)](#old-style-string-formatting--operator)
+ - [새로운 스타일 문자열 포매팅(str.format)](#new-style-string-formatting-strformat)
+ - [문자열 Interpolation / f-Strings (Python 3.6+)](#string-interpolation--f-strings-python-36)
+ - [문자 시퀀스로서의 Python 문자열](#python-strings-as-sequences-of-characters)
+ - [언패킹 문자](#unpacking-characters)
+ - [인덱스로 문자열의 문자에 액세스](#accessing-characters-in-strings-by-index)
+ - [파이썬 문자열 슬라이싱](#slicing-python-strings)
+ - [문자열 리버스](#reversing-a-string)
+ - [슬라이싱하는 동안 문자 건너뛰기](#skipping-characters-while-slicing)
+ - [문자열 메서드](#string-methods)
+ - [💻 Exercises - Day 4](#-exercises---day-4)
+
+# Day 4
+
+## 문자열
+
+텍스트는 문자열 데이터 유형입니다. 텍스트로 작성된 모든 데이터 유형은 문자열입니다. 작은따옴표, 큰따옴표 또는 삼중따옴표 아래의 모든 데이터는 문자열입니다. 문자열 데이터 유형을 처리하기 위한 다양한 문자열 메서드와 내장 함수가 있습니다. 문자열의 길이를 확인하려면 len() 메서드를 사용하십시오.
+
+### 문자열 만들기
+
+```py
+letter = 'P' # A string could be a single character or a bunch of texts
+print(letter) # P
+print(len(letter)) # 1
+greeting = 'Hello, World!' # String could be made using a single or double quote,"Hello, World!"
+print(greeting) # Hello, World!
+print(len(greeting)) # 13
+sentence = "I hope you are enjoying 30 days of Python Challenge"
+print(sentence)
+```
+
+여러 줄 문자열은 세 개의 작은따옴표(''') 또는 세 개의 큰따옴표(""")를 사용하여 생성됩니다. 아래 예를 참조하십시오.
+
+```py
+multiline_string = '''I am a teacher and enjoy teaching.
+I didn't find anything as rewarding as empowering people.
+That is why I created 30 days of python.'''
+print(multiline_string)
+
+# Another way of doing the same thing
+multiline_string = """I am a teacher and enjoy teaching.
+I didn't find anything as rewarding as empowering people.
+That is why I created 30 days of python."""
+print(multiline_string)
+```
+
+### 문자열 연결
+
+문자열을 함께 연결할 수 있습니다. 문자열을 병합하거나 연결하는 것을 연결이라고 합니다. 아래 예를 참조하십시오.
+
+```py
+first_name = 'Asabeneh'
+last_name = 'Yetayeh'
+space = ' '
+full_name = first_name + space + last_name
+print(full_name) # Asabeneh Yetayeh
+# Checking the length of a string using len() built-in function
+print(len(first_name)) # 8
+print(len(last_name)) # 7
+print(len(first_name) > len(last_name)) # True
+print(len(full_name)) # 16
+```
+
+### 문자열의 이스케이프 시퀀스
+
+Python 및 기타 프로그래밍 언어에서 \ 다음에 오는 문자는 이스케이프 시퀀스입니다. 가장 일반적인 이스케이프 문자를 살펴보겠습니다.
+
+- \n: 새로운 라인
+- \t: 탭은(8칸)을 의미합니다.
+- \\: 백슬래시
+- \': 작은따옴표(')
+- \": 큰따옴표(")
+
+이제 위의 이스케이프 시퀀스를 예제와 함께 사용하는 방법을 살펴보겠습니다.
+
+```py
+print('I hope everyone is enjoying the Python Challenge.\nAre you ?') # line break
+print('Days\tTopics\tExercises') # adding tab space or 4 spaces
+print('Day 1\t3\t5')
+print('Day 2\t3\t5')
+print('Day 3\t3\t5')
+print('Day 4\t3\t5')
+print('This is a backslash symbol (\\)') # To write a backslash
+print('In every programming language it starts with \"Hello, World!\"') # to write a double quote inside a single quote
+
+# output
+I hope every one is enjoying the Python Challenge.
+Are you ?
+Days Topics Exercises
+Day 1 5 5
+Day 2 6 20
+Day 3 5 23
+Day 4 1 35
+This is a backslash symbol (\)
+In every programming language it starts with "Hello, World!"
+```
+
+### 문자열 포매팅
+
+#### 올드 스타일 문자열 형식화(% 연산자)
+
+Python에는 문자열 형식을 지정하는 여러 가지 방법이 있습니다. 이 섹션에서는 그 중 일부를 다룰 것입니다. "%" 연산자는 "인수 지정자", "%s"와 같은 특수 기호와 함께 일반 텍스트를 포함하는 형식 문자열과 함께 "튜플"(고정 크기 목록)로 묶인 변수 세트의 형식을 지정하는 데 사용됩니다. , "%d", "%f", "%. 자릿수 f".
+
+- %s - 문자열(또는 숫자와 같은 문자열 표현이 있는 모든 객체)
+- %d - 정수
+- %f - 부동 소수점 숫자
+- "%. number of digits f" - 정밀도가 고정된 부동 소수점 숫자
+
+```py
+# Strings only
+first_name = 'Asabeneh'
+last_name = 'Yetayeh'
+language = 'Python'
+formated_string = 'I am %s %s. I teach %s' %(first_name, last_name, language)
+print(formated_string)
+
+# Strings and numbers
+radius = 10
+pi = 3.14
+area = pi * radius ** 2
+formated_string = 'The area of circle with a radius %d is %.2f.' %(radius, area) # 2 refers the 2 significant digits after the point
+
+python_libraries = ['Django', 'Flask', 'NumPy', 'Matplotlib','Pandas']
+formated_string = 'The following are python libraries:%s' % (python_libraries)
+print(formated_string) # "The following are python libraries:['Django', 'Flask', 'NumPy', 'Matplotlib','Pandas']"
+```
+
+#### 새로운스타일 문자열 형식화(str.format)
+
+이 형식은 Python 버전 3에서 도입되었습니다.
+
+```py
+
+first_name = 'Asabeneh'
+last_name = 'Yetayeh'
+language = 'Python'
+formated_string = 'I am {} {}. I teach {}'.format(first_name, last_name, language)
+print(formated_string)
+a = 4
+b = 3
+
+print('{} + {} = {}'.format(a, b, a + b))
+print('{} - {} = {}'.format(a, b, a - b))
+print('{} * {} = {}'.format(a, b, a * b))
+print('{} / {} = {:.2f}'.format(a, b, a / b)) # limits it to two digits after decimal
+print('{} % {} = {}'.format(a, b, a % b))
+print('{} // {} = {}'.format(a, b, a // b))
+print('{} ** {} = {}'.format(a, b, a ** b))
+
+# output
+4 + 3 = 7
+4 - 3 = 1
+4 * 3 = 12
+4 / 3 = 1.33
+4 % 3 = 1
+4 // 3 = 1
+4 ** 3 = 64
+
+# Strings and numbers
+radius = 10
+pi = 3.14
+area = pi * radius ** 2
+formated_string = 'The area of a circle with a radius {} is {:.2f}.'.format(radius, area) # 2 digits after decimal
+print(formated_string)
+
+```
+
+#### 문자열 Interpolation / f-Strings (Python 3.6+)
+
+또 다른 새로운 문자열 형식화는 문자열 보간법인 f-문자열입니다. 문자열은 f로 시작하고 해당 위치에 데이터를 주입할 수 있습니다.
+
+```py
+a = 4
+b = 3
+print(f'{a} + {b} = {a +b}')
+print(f'{a} - {b} = {a - b}')
+print(f'{a} * {b} = {a * b}')
+print(f'{a} / {b} = {a / b:.2f}')
+print(f'{a} % {b} = {a % b}')
+print(f'{a} // {b} = {a // b}')
+print(f'{a} ** {b} = {a ** b}')
+```
+
+### 문자 시퀀스로서의 Python 문자열
+
+Python 문자열은 문자 시퀀스이며, 기본 액세스 방법을 다른 Python 순서 객체 시퀀스(목록 및 튜플)와 공유합니다. 문자열(및 모든 시퀀스의 개별 멤버)에서 단일 문자를 추출하는 가장 간단한 방법은 해당 변수로 압축을 푸는 것입니다.
+
+#### 언패킹 문자
+
+```
+language = 'Python'
+a,b,c,d,e,f = language # unpacking sequence characters into variables
+print(a) # P
+print(b) # y
+print(c) # t
+print(d) # h
+print(e) # o
+print(f) # n
+```
+
+#### 인덱스로 문자열의 문자에 액세스
+
+프로그래밍에서 카운팅은 0부터 시작합니다. 따라서 문자열의 첫 번째 문자는 인덱스가 0이고 문자열의 마지막 문자는 문자열의 길이에서 1을 뺀 값입니다.
+
+
+
+```py
+language = 'Python'
+first_letter = language[0]
+print(first_letter) # P
+second_letter = language[1]
+print(second_letter) # y
+last_index = len(language) - 1
+last_letter = language[last_index]
+print(last_letter) # n
+```
+
+오른쪽 끝에서 시작하려면 음수 인덱싱을 사용할 수 있습니다. -1은 마지막 인덱스입니다.
+
+```py
+language = 'Python'
+last_letter = language[-1]
+print(last_letter) # n
+second_last = language[-2]
+print(second_last) # o
+```
+
+#### 파이썬 문자열 슬라이싱
+
+파이썬에서는 문자열을 하위 문자열로 슬라이스할 수 있습니다.
+
+```py
+language = 'Python'
+first_three = language[0:3] # starts at zero index and up to 3 but not include 3
+print(first_three) #Pyt
+last_three = language[3:6]
+print(last_three) # hon
+# Another way
+last_three = language[-3:]
+print(last_three) # hon
+last_three = language[3:]
+print(last_three) # hon
+```
+
+#### 문자열 리버스
+
+파이썬에서 문자열을 쉽게 뒤집을 수 있습니다.
+
+```py
+greeting = 'Hello, World!'
+print(greeting[::-1]) # !dlroW ,olleH
+```
+
+#### 슬라이싱하는 동안 문자 건너뛰기
+
+슬라이스 메소드에 단계 인수를 전달하여 슬라이스하는 동안 문자를 건너뛸 수 있습니다.
+
+```py
+language = 'Python'
+pto = language[0:6:2] #
+print(pto) # Pto
+```
+
+### 문자열 메서드
+
+문자열을 형식화할 수 있는 많은 문자열 메서드가 있습니다. 다음 예제에서 일부 문자열 메서드를 참조하십시오.
+
+- capitalize(): 문자열의 첫 번째 문자를 대문자로 변환
+
+```py
+challenge = 'thirty days of python'
+print(challenge.capitalize()) # 'Thirty days of python'
+```
+
+- count(): 문자열에서 하위 문자열의 발생을 반환합니다. count(substring, start=.., end=..). 시작은 카운트를 위한 시작 인덱싱이고 끝은 카운트할 마지막 인덱스입니다.
+
+```py
+challenge = 'thirty days of python'
+print(challenge.count('y')) # 3
+print(challenge.count('y', 7, 14)) # 1,
+print(challenge.count('th')) # 2`
+```
+
+- endswith(): 문자열이 지정된 끝으로 끝나는지 확인합니다.
+
+```py
+challenge = 'thirty days of python'
+print(challenge.endswith('on')) # True
+print(challenge.endswith('tion')) # False
+```
+
+- expandtabs(): 탭 문자를 공백으로 바꿉니다. 기본 탭 크기는 8입니다. 탭 크기 인수를 사용합니다.
+
+```py
+challenge = 'thirty\tdays\tof\tpython'
+print(challenge.expandtabs()) # 'thirty days of python'
+print(challenge.expandtabs(10)) # 'thirty days of python'
+```
+
+- find(): 하위 문자열이 처음 나타나는 인덱스를 반환합니다. 찾을 수 없으면 -1을 반환합니다.
+
+```py
+challenge = 'thirty days of python'
+print(challenge.count('y')) # 3
+print(challenge.count('y', 7, 14)) # 1,
+print(challenge.count('th')) # 2`
+```
+
+- rfind(): 하위 문자열이 마지막으로 나타나는 인덱스를 반환합니다. 찾을 수 없으면 -1을 반환합니다.
+
+```py
+challenge = 'thirty days of python'
+print(challenge.rfind('y')) # 5
+print(challenge.rfind('th')) # 1
+```
+
+- format(): 문자열을 더 나은 출력으로 포맷합니다.
문자열 형식에 대한 자세한 내용은 이 [링크](https://www.programiz.com/python-programming/methods/string/format) 를 확인하세요.
+
+```py
+first_name = 'Asabeneh'
+last_name = 'Yetayeh'
+age = 250
+job = 'teacher'
+country = 'Finland'
+sentence = 'I am {} {}. I am a {}. I am {} years old. I live in {}.'.format(first_name, last_name, age, job, country)
+print(sentence) # I am Asabeneh Yetayeh. I am 250 years old. I am a teacher. I live in Finland.
+
+radius = 10
+pi = 3.14
+area = pi * radius ** 2
+result = 'The area of a circle with radius {} is {}'.format(str(radius), str(area))
+print(result) # The area of a circle with radius 10 is 314
+```
+
+- index(): 하위 문자열의 가장 낮은 색인을 반환하고 추가 인수는 시작 및 끝 색인을 나타냅니다(기본값 0 및 문자열 길이 - 1). 하위 문자열을 찾을 수 없으면 valueError가 발생합니다.
+
+```py
+challenge = 'thirty days of python'
+sub_string = 'da'
+print(challenge.index(sub_string)) # 7
+print(challenge.index(sub_string, 9)) # error
+```
+
+- rindex(): 하위 문자열의 가장 높은 색인을 반환합니다. 추가 인수는 시작 및 끝 색인을 나타냅니다(기본값 0 및 문자열 길이 - 1).
+
+```py
+challenge = 'thirty days of python'
+sub_string = 'da'
+print(challenge.rindex(sub_string)) # 8
+print(challenge.rindex(sub_string, 9)) # error
+```
+
+- isalnum(): 영숫자 확인
+
+```py
+challenge = 'ThirtyDaysPython'
+print(challenge.isalnum()) # True
+
+challenge = '30DaysPython'
+print(challenge.isalnum()) # True
+
+challenge = 'thirty days of python'
+print(challenge.isalnum()) # False, space is not an alphanumeric character
+
+challenge = 'thirty days of python 2019'
+print(challenge.isalnum()) # False
+```
+
+- isalpha(): 모든 문자열 요소가 알파벳 문자(az 및 AZ)인지 확인합니다.
+
+```py
+challenge = 'thirty days of python'
+print(challenge.isalpha()) # False, space is once again excluded
+challenge = 'ThirtyDaysPython'
+print(challenge.isalpha()) # True
+num = '123'
+print(num.isalpha()) # False
+```
+
+- isdecimal(): 문자열의 모든 문자가 십진수(0-9)인지 확인합니다.
+
+```py
+challenge = 'thirty days of python'
+print(challenge.isdecimal()) # False
+challenge = '123'
+print(challenge.isdecimal()) # True
+challenge = '\u00B2'
+print(challenge.isdigit()) # False
+challenge = '12 3'
+print(challenge.isdecimal()) # False, space not allowed
+```
+
+- isdigit(): 문자열의 모든 문자가 숫자인지 확인합니다(숫자는 0-9 및 일부 다른 유니코드 문자).
+
+```py
+challenge = 'Thirty'
+print(challenge.isdigit()) # False
+challenge = '30'
+print(challenge.isdigit()) # True
+challenge = '\u00B2'
+print(challenge.isdigit()) # True
+```
+
+- isnumeric(): 문자열의 모든 문자가 숫자인지 또는 숫자와 관련된 것인지 확인합니다(isdigit()와 마찬가지로 ½과 같은 더 많은 기호를 허용합니다).
+
+```py
+num = '10'
+print(num.isnumeric()) # True
+num = '\u00BD' # ½
+print(num.isnumeric()) # True
+num = '10.5'
+print(num.isnumeric()) # False
+```
+
+- isidentifier(): 유효한 식별자를 확인합니다. 문자열이 유효한 변수 이름인지 확인합니다.
+
+```py
+challenge = '30DaysOfPython'
+print(challenge.isidentifier()) # False, because it starts with a number
+challenge = 'thirty_days_of_python'
+print(challenge.isidentifier()) # True
+```
+
+- islower(): 문자열의 모든 알파벳 문자가 소문자인지 확인
+
+```py
+challenge = 'thirty days of python'
+print(challenge.islower()) # True
+challenge = 'Thirty days of python'
+print(challenge.islower()) # False
+```
+
+- islower(): 문자열의 모든 알파벳 문자가 소문자인지 확인
+
+```py
+challenge = 'thirty days of python'
+print(challenge.isupper()) # False
+challenge = 'THIRTY DAYS OF PYTHON'
+print(challenge.isupper()) # True
+```
+
+- join(): 연결된 문자열을 반환합니다.
+
+```py
+web_tech = ['HTML', 'CSS', 'JavaScript', 'React']
+result = ' '.join(web_tech)
+print(result) # 'HTML CSS JavaScript React'
+```
+
+```py
+web_tech = ['HTML', 'CSS', 'JavaScript', 'React']
+result = '# '.join(web_tech)
+print(result) # 'HTML# CSS# JavaScript# React'
+```
+
+- strip(): 문자열의 시작과 끝에서 시작하여 주어진 모든 문자를 제거합니다.
+
+```py
+challenge = 'thirty days of pythoonnn'
+print(challenge.strip('noth')) # 'irty days of py'
+```
+
+- replace(): 하위 문자열을 주어진 문자열로 대체합니다.
+
+```py
+challenge = 'thirty days of python'
+print(challenge.replace('python', 'coding')) # 'thirty days of coding'
+```
+
+- split(): 주어진 문자열 또는 공백을 구분 기호로 사용하여 문자열을 분할합니다.
+
+```py
+challenge = 'thirty days of python'
+print(challenge.split()) # ['thirty', 'days', 'of', 'python']
+challenge = 'thirty, days, of, python'
+print(challenge.split(', ')) # ['thirty', 'days', 'of', 'python']
+```
+
+- title(): 제목 케이스 문자열을 반환합니다.
+
+```py
+challenge = 'thirty days of python'
+print(challenge.title()) # Thirty Days Of Python
+```
+
+- swapcase(): 모든 대문자를 소문자로, 모든 소문자를 대문자로 변환
+
+```py
+challenge = 'thirty days of python'
+print(challenge.swapcase()) # THIRTY DAYS OF PYTHON
+challenge = 'Thirty Days Of Python'
+print(challenge.swapcase()) # tHIRTY dAYS oF pYTHON
+```
+
+- startswith(): 문자열이 지정된 문자열로 시작하는지 확인
+
+```py
+challenge = 'thirty days of python'
+print(challenge.startswith('thirty')) # True
+
+challenge = '30 days of python'
+print(challenge.startswith('thirty')) # False
+```
+
+🌕 당신은 특별한 사람이고 놀라운 잠재력을 가지고 있습니다. 당신은 방금 4일 차 도전을 완료했고 당신은 위대함을 향한 당신의 길에 4걸음 남았습니다. 이제 뇌와 근육을 위한 몇 가지 훈련을 하십시오.
+
+## 💻 Exercises - Day 4
+
+1. 문자열 'Thirty', 'Days', 'Of', 'Python'을 단일 문자열 'Thirty Days Of Python'에 연결합니다.
+2. 문자열 'Coding', 'For' , 'All'을 단일 문자열 'Coding For All'에 연결합니다.
+3. company라는 변수를 선언하고 초기 값 "Coding For All"에 할당합니다.
+4. *print()* 를 사용하여 회사 변수를 인쇄합니다.
+5. *len()* 메서드와 *print()* 를 사용하여 회사 문자열의 길이를 인쇄합니다.
+6. *upper()* 메서드를 사용하여 모든 문자를 대문자로 변경합니다.
+7. *lower()* 메서드를 사용하여 모든 문자를 소문자로 변경합니다.
+8. 문자열 *Coding For All* 의 값을 형식화하려면 capitalize(), title(), swapcase() 메소드를 사용하십시오.
+9. *Coding For All* 문자열의 첫 번째 단어를 잘라냅니다.
+10. Index, find 또는 기타 방법을 사용하여 *Coding For All* 문자열에 단어 Coding이 포함되어 있는지 확인합니다.
+11. 문자열 'Coding For All'의 코딩이라는 단어를 Python으로 바꿉니다.
+12. replace 메서드 또는 기타 메서드를 사용하여 모두를 위한 Python을 모두를 위한 Python으로 변경합니다.
+13. 공백을 구분 기호로 사용하여 문자열 'Coding For All'을 분할합니다(split()).
+14. "Facebook, Google, Microsoft, Apple, IBM, Oracle, Amazon"은 쉼표에서 문자열을 나눕니다.
+15. 문자열 *Coding For All* 에서 인덱스 0에 있는 문자는 무엇입니까?
+16. 문자열 *Coding For All* 에서 인덱스 0에 있는 문자는 무엇입니까?
+17. "Coding For All" 문자열에서 인덱스 10에 있는 문자는 무엇입니까?
+18. 'Python For Everyone'이라는 이름의 약어 또는 약어를 만듭니다.
+19. 'Coding For All'이라는 이름의 약어 또는 약어를 만듭니다.
+20. Index를 사용하여 Coding For All에서 C가 처음 나타나는 위치를 결정합니다.
+21. Index를 사용하여 Coding For All에서 F가 처음 나타나는 위치를 결정합니다.
+22. Coding For All People에서 l이 마지막으로 나타나는 위치를 결정하려면 rfind를 사용하십시오.
+23. 색인 또는 찾기를 사용하여 다음 문장에서 'because'라는 단어가 처음 나타나는 위치를 찾습니다.
+24. 색인 또는 찾기를 사용하여 다음 문장에서 'because'라는 단어가 처음 나타나는 위치를 찾습니다.
+25. 색인 또는 찾기를 사용하여 다음 문장에서 'because'라는 단어가 처음 나타나는 위치를 찾습니다.
+26. 색인 또는 찾기를 사용하여 다음 문장에서 'because'라는 단어가 처음 나타나는 위치를 찾습니다.
+27. 다음 문장에서 'because because because'라는 구문을 잘라냅니다.
+28. 'Coding For All'은 하위 문자열 *Coding* 으로 시작합니까?
+29. 'Coding For All'은 하위 문자열 *코딩* 으로 끝납니까?
+30. ' Coding For All ' , 주어진 문자열에서 왼쪽 및 오른쪽 후행 공백을 제거합니다.
+31. 다음 변수 중 isidentifier() 메서드를 사용할 때 True를 반환하는 변수는 무엇입니까?
+ - 30DaysOfPython
+ - thirty_days_of_python
+32. 다음 목록에는 일부 파이썬 라이브러리의 이름이 포함되어 있습니다: ['Django', 'Flask', 'Bottle', 'Pyramid', 'Falcon']. 공백 문자열이 있는 해시로 목록에 가입하십시오.
+33. 새 줄 이스케이프 시퀀스를 사용하여 다음 문장을 구분합니다.
+ ```py
+ I am enjoying this challenge.
+ I just wonder what is next.
+ ```
+34. 새 줄 이스케이프 시퀀스를 사용하여 다음 문장을 구분합니다.
+ ```py
+ Name Age Country City
+ Asabeneh 250 Finland Helsinki
+ ```
+35. 문자열 형식 지정 방법을 사용하여 다음을 표시합니다:
+
+```sh
+radius = 10
+area = 3.14 * radius ** 2
+The area of a circle with radius 10 is 314 meters square.
+```
+
+1. 문자열 형식화 방법을 사용하여 다음을 작성하십시오:
+
+```sh
+8 + 6 = 14
+8 - 6 = 2
+8 * 6 = 48
+8 / 6 = 1.33
+8 % 6 = 2
+8 // 6 = 1
+8 ** 6 = 262144
+```
+
+🎉 축하합니다! 🎉
+
+[<< Day 3](../03_Day_Operators/03_operators.md) | [Day 5 >>](../05_Day_Lists/05_lists.md)
diff --git a/Korean/readme_ko.md b/Korean/readme_ko.md
new file mode 100644
index 0000000..bc62860
--- /dev/null
+++ b/Korean/readme_ko.md
@@ -0,0 +1,454 @@
+# 🐍 30 Days Of Python
+
+|# Day | Topics |
+|------|:---------------------------------------------------------:|
+| 01 | [Introduction](./readme_ko.md)|
+| 02 | [Variables, Built-in Functions](../02_Day_Variables_builtin_functions/02_variables_builtin_functions.md)|
+| 03 | [Operators](../03_Day_Operators/03_operators.md)|
+| 04 | [Strings](../04_Day_Strings/04_strings.md)|
+| 05 | [Lists](../05_Day_Lists/05_lists.md)|
+| 06 | [Tuples](../06_Day_Tuples/06_tuples.md)|
+| 07 | [Sets](../07_Day_Sets/07_sets.md)|
+| 08 | [Dictionaries](../08_Day_Dictionaries/08_dictionaries.md)|
+| 09 | [Conditionals](../09_Day_Conditionals/09_conditionals.md)|
+| 10 | [Loops](../10_Day_Loops/10_loops.md)|
+| 11 | [Functions](../11_Day_Functions/11_functions.md)|
+| 12 | [Modules](../12_Day_Modules/12_modules.md)|
+| 13 | [List Comprehension](../13_Day_List_comprehension/13_list_comprehension.md)|
+| 14 | [Higher Order Functions](../14_Day_Higher_order_functions/14_higher_order_functions.md)|
+| 15 | [Python Type Errors](../15_Day_Python_type_errors/15_python_type_errors.md)|
+| 16 | [Python Date time](../16_Day_Python_date_time/16_python_datetime.md) |
+| 17 | [Exception Handling](../17_Day_Exception_handling/17_exception_handling.md)|
+| 18 | [Regular Expressions](../18_Day_Regular_expressions/18_regular_expressions.md)|
+| 19 | [File Handling](../19_Day_File_handling/19_file_handling.md)|
+| 20 | [Python Package Manager](../20_Day_Python_package_manager/20_python_package_manager.md)|
+| 21 | [Classes and Objects](../21_Day_Classes_and_objects/21_classes_and_objects.md)|
+| 22 | [Web Scraping](../22_Day_Web_scraping/22_web_scraping.md)|
+| 23 | [Virtual Environment](../23_Day_Virtual_environment/23_virtual_environment.md)|
+| 24 | [Statistics](../24_Day_Statistics/24_statistics.md)|
+| 25 | [Pandas](../25_Day_Pandas/25_pandas.md)|
+| 26 | [Python web](../26_Day_Python_web/26_python_web.md)|
+| 27 | [Python with MongoDB](../27_Day_Python_with_mongodb/27_python_with_mongodb.md)|
+| 28 | [API](../28_Day_API/28_API.md)|
+| 29 | [Building API](../29_Day_Building_API/29_building_API.md)|
+| 30 | [Conclusions](../30_Day_Conclusions/30_conclusions.md)|
+
+🧡🧡🧡 HAPPY CODING 🧡🧡🧡
+
+
+
Support the author to create more educational materials
+

+
+
+
+
30 Days Of Python: Day 1 - Introduction
+
+
+
+
Author:
+ Asabeneh Yetayeh
+ Second Edition: July, 2021
+
+
+
+
+[Day 2 >>](../02_Day_Variables_builtin_functions/02_variables_builtin_functions.md)
+
+
+
+- [🐍 30 Days Of Python](#-30-days-of-python)
+- [📘 Day 1](#-day-1)
+ - [환영합니다](#환영합니다)
+ - [소개](#소개)
+ - [왜 Python이느냐?](#왜-python이느냐?)
+ - [환경 설정](#환경-설정)
+ - [Python 설치](#python-설치)
+ - [Python 셸](#python-셸)
+ - [Visual Studio Code 설치](#visual-studio-code-설치)
+ - [visual studio code를 사용하기](#visual-studio-code를-사용하기)
+ - [Python 기본](#python-기본)
+ - [Python 구문](#python-구문)
+ - [Python 들여쓰기](#python-들여쓰기)
+ - [주석](#주석)
+ - [데이터 타입](#데이터-타입)
+ - [Number](#number)
+ - [String](#string)
+ - [Booleans](#booleans)
+ - [List](#list)
+ - [Dictionary](#dictionary)
+ - [Tuple](#tuple)
+ - [Set](#set)
+ - [데이터 타입 체크](#데이터-타입-체크)
+ - [Python 파일](#python-파일)
+ - [💻 Exercises - Day 1](#-exercises---day-1)
+ - [Exercise: Level 1](#exercise-level-1)
+ - [Exercise: Level 2](#exercise-level-2)
+ - [Exercise: Level 3](#exercise-level-3)
+
+# 📘 Day 1
+
+## 환영합니다
+
+_30 days of Python_에 참여하기로 결정하신 것을 **축하드립니다**. 이 챌린지에서는 Python 프로그래머가 되기 위해 필요한 모든 것과 프로그래밍의 전체 개념을 배우게 됩니다. 챌린지가 끝나면 _30DaysOfPython_프로그래밍 챌린지 인증서를 받게 됩니다.
+
+챌린지에 적극적으로 참여하고 싶다면 [30DaysOfPython challenge](https://t.me/ThirtyDaysOfPython) 텔레그램 그룹에 가입할 수 있습니다.
+
+## 소개
+
+Python은 범용 프로그래밍을 위한 고급 프로그래밍 언어입니다. 오픈 소스, 인터프리터, 객체 지향 프로그래밍 언어입니다. Python은 네덜란드 프로그래머 Guido van Rossum이 만들었습니다. Python 프로그래밍 언어의 이름은 영국 스케치 코미디 시리즈 *Month Python's Flying Circus* 에서 파생되었습니다. 첫 번째 버전은 1991년 2월 20일에 출시되었습니다. 이 30일간의 Python 챌린지는 최신 버전의 Python인 Python 3를 차근차근 배울 수 있도록 도와줄 것입니다. 주제는 30일로 나뉘며, 매일 이해하기 쉬운 설명, 실제 사례, 많은 실습 및 프로젝트가 포함된 여러 주제가 포함됩니다.
+
+이 챌린지는 Python 프로그래밍 언어를 배우고자 하는 초보자와 전문가를 위해 고안되었습니다. 챌린지를 완료하는 데 30~100일이 소요될 수 있으며 텔레그램 그룹에 적극적으로 참여하는 사람들이 챌린지를 완료할 확률이 높습니다.
+시각적 학습자이거나 동영상을 선호하는 경우 이 [완전 초보를 위한 Python 동영상](https://www.youtube.com/watch?v=11OYpBrhdyM)으로 시작할 수 있습니다.
+
+## 왜 Python이느냐?
+
+인간의 언어에 매우 가깝고 배우기 쉽고 사용하기 쉬운 프로그래밍 언어입니다.
+Python은 다양한 산업 및 회사(Google 포함)에서 사용됩니다. 웹 응용 프로그램, 데스크톱 응용 프로그램, 시스템 관리 및 기계 학습 라이브러리를 개발하는 데 사용되었습니다. Python은 데이터 과학 및 기계 학습 커뮤니티에서 널리 사용되는 언어입니다. 이것이 Python 학습을 시작하도록 설득하기에 충분하기를 바랍니다. Python은 세상을 지배하고 있으니 지배 당하기 전에 Python을 지배하십시오.
+## 환경 설정
+
+### Python 설치
+
+Python 스크립트를 실행하려면 Python을 설치해야 합니다. Python을 [다운로드](https://www.python.org/)합시다.
+Windows 사용자인 경우. 빨간색 동그라미 친 버튼을 클릭합니다.
+
+
+
+macOS 사용자인 경우. 빨간색 동그라미 친 버튼을 클릭합니다.
+
+[](https://www.python.org/)
+
+Python이 설치되어 있는지 확인하려면 장치 터미널에 다음 명령을 작성하십시오.
+
+```shell
+python --version
+```
+
+
+
+터미널에서 보시다시피 저는 현재 _Python 3.7.5_ 버전을 사용하고 있습니다. 귀하의 Python 버전은 내 버전과 다를 수 있지만 3.6 이상이어야 합니다. Python 버전을 볼 수 있다면 잘한 것입니다. 이제 컴퓨터에 Python이 설치되었습니다. 다음 섹션으로 계속 진행하십시오.
+
+### Python 셸
+
+Python은 해석된 스크립팅 언어이므로 컴파일할 필요가 없습니다. 코드를 한 줄씩 실행한다는 의미입니다. Python은 _Python Shell(Python Interactive Shell)_과 함께 제공됩니다. 단일 Python 명령을 실행하고 결과를 얻는 데 사용됩니다.
+
+Python Shell은 사용자의 Python 코드를 기다립니다. 코드를 입력하면 코드를 해석하여 다음 줄에 결과를 표시합니다.
+터미널이나 명령 프롬프트(cmd)를 열고 쓰기:
+
+```shell
+python
+```
+
+
+
+Python 대화형 셸이 열리고 Python 코드(Python 스크립트)를 작성하기를 기다립니다. 기호 >>> 옆에 Python 스크립트를 작성하고 Enter를 누릅니다.
+Python 스크립팅 셸에서 첫 번째 스크립트를 작성해 보겠습니다.
+
+
+
+훌륭합니다. Python 대화형 셸에서 첫 번째 Python 스크립트를 작성했습니다. Python 대화형 셸을 어떻게 닫습니까?
+셸을 닫으려면 기호 옆에 >> **exit()** 명령을 작성하고 Enter 키를 누릅니다.
+
+
+
+이제 Python 대화형 셸을 여는 방법과 종료하는 방법을 알았습니다.
+
+Python은 Python이 이해하는 스크립트를 작성하면 결과를 제공하고 그렇지 않으면 오류를 반환합니다. 고의적인 실수를 하고 Python이 무엇을 반환하는지 봅시다.
+
+
+
+반환된 오류에서 볼 수 있듯이 Python은 우리가 저지른 실수와 _Syntax Error: invalid syntax_를 알고 있을 정도로 영리합니다. Python에서 x를 곱셈으로 사용하는 것은 (x)가 Python에서 유효한 구문이 아니기 때문에 구문 오류입니다. (**x**) 대신 곱셈에 별표(*)를 사용합니다. 반환된 오류는 수정해야 할 사항을 명확하게 보여줍니다.
+
+프로그램에서 오류를 식별하고 제거하는 프로세스를 *디버깅*이라고 합니다. **x** 대신 *를 넣어 디버깅해 봅시다.
+
+
+
+버그가 수정되었고 코드가 실행되었으며 예상했던 결과를 얻었습니다. 프로그래머로서 매일 이러한 종류의 오류를 보게 될 것입니다. 디버깅 방법을 아는 것이 좋습니다. 디버깅을 잘하려면 어떤 종류의 오류가 발생했는지 이해해야 합니다. 발생할 수 있는 Python 오류 중 일부는 *SyntaxError*, *IndexError*, *NameError*, *ModuleNotFoundError*, *KeyError*, *ImportError*, *AttributeError*, *TypeError*, *ValueError*, *ZeroDivisionError* 등입니다. 이후 섹션에서 다른 Python **_오류 유형_**에 대해 자세히 알아볼 것입니다.
+
+Python 대화형 셸을 사용하는 방법을 더 연습해 보겠습니다. 터미널이나 명령 프롬프트로 이동하여 **python**이라는 단어를 씁니다.
+
+
+
+Python 대화형 셸이 열립니다. 몇 가지 기본적인 수학 연산(더하기, 빼기, 곱하기, 나누기, 나머지, 지수)을 수행해 보겠습니다.
+
+Python 코드를 작성하기 전에 먼저 몇 가지 수학을 수행해 보겠습니다:
+
+- 2 + 3 = 5
+- 3 - 2 = 1
+- 3 \* 2 = 6
+- 3 / 2 = 1.5
+- 3 ^ 2 = 3 x 3 = 9
+
+Python에는 다음과 같은 추가 작업이 있습니다:
+
+- 3 % 2 = 1 => 나머지를 구함
+- 3 // 2 = 1 => 나머지를 제거
+
+위의 수학식을 Python 코드로 바꿔봅시다. Python 셸이 열렸으며 셸 맨 처음에 주석을 작성하겠습니다.
+
+_comment_는 Python에 의해 실행되지 않는 코드의 일부입니다. 따라서 코드를 더 읽기 쉽게 만들기 위해 코드에 일부 텍스트를 남길 수 있습니다. Python은 주석 부분을 실행하지 않습니다. Python에서 주석은 해시(#) 기호로 시작합니다.
+이것이 Python에서 주석을 작성하는 방법입니다
+
+```shell
+ # 주석은 해시로 시작합니다.
+ # (#) 심볼로 시작하기 때문에 이것은 파이썬 주석입니다.
+```
+
+
+
+다음 섹션으로 이동하기 전에 Python 대화형 셸에서 더 많은 연습을 해 보겠습니다. 셸에서 _exit()_를 작성하여 열린 셸을 닫았다가 다시 열어 Python 셸에서 텍스트를 쓰는 방법을 연습해 봅시다.
+
+
+
+### Visual Studio Code 설치
+
+Python 대화형 셸은 작은 스크립트 코드를 시도하고 테스트하는 데 적합하지만 큰 프로젝트에는 적합하지 않습니다. 실제 작업 환경에서 개발자는 다양한 코드 편집기를 사용하여 코드를 작성합니다. 이 30일간의 Python 프로그래밍 챌린지에서는 Visual Studio 코드를 사용합니다. Visual Studio Code는 매우 인기 있는 오픈 소스 텍스트 편집기입니다. 나는 vscode의 팬이고 Visual Studio 코드를 [다운로드](https://code.visualstudio.com/)하는 것을 추천하고 싶지만, 다른 편집자를 선호한다면 가지고 있는 것을 자유롭게 따르십시오.
+
+[](https://code.visualstudio.com/)
+
+Visual Studio Code를 설치하셨다면 어떻게 사용하는지 알아보겠습니다.
+비디오를 선호하는 경우 Python용 Visual Studio Code[비디오 자습서](https://www.youtube.com/watch?v=bn7Cx4z-vSo)를 따를 수 있습니다.
+
+#### visual studio code를 사용하기
+
+Visual Studio 아이콘을 두 번 클릭하여 Visual Studio 코드를 엽니다. 열면 이런 종류의 인터페이스가 나타납니다. 레이블이 지정된 아이콘을 따라해보세요.
+
+
+
+바탕 화면에 30DaysOfPython이라는 폴더를 만듭니다. 그런 다음 Visual Studio 코드를 사용하여 엽시다.
+
+
+
+
+
+파일을 열면 30DaysOfPython 프로젝트의 디렉토리 내부에 파일과 폴더를 생성하기 위한 바로 가기가 표시됩니다. 아래에서 볼 수 있듯이 첫 번째 파일인 helloworld.py를 만들었습니다. 당신도 똑같이 할 수 있습니다.
+
+
+
+하루동안 오래 코딩을 한 후에 코드 편집기를 닫고 싶습니까? 이렇게 열린 프로젝트를 닫으면 됩니다.
+
+
+
+축하합니다. 개발 환경 설정을 완료했습니다. 코딩을 시작해 봅시다.
+
+## Python 기본
+
+### Python 구문
+
+Python 스크립트는 Python 대화형 셸 또는 코드 편집기에서 작성할 수 있습니다. Python 파일의 확장자는 .py입니다.
+
+### Python 들여 쓰기
+
+들여쓰기는 텍스트의 공백입니다. 많은 언어에서 들여쓰기는 코드 가독성을 높이는 데 사용되지만 Python은 들여쓰기를 사용하여 코드 블록을 만듭니다. 다른 프로그래밍 언어에서는 중괄호를 사용하여 들여쓰기 대신 코드 블록을 만듭니다. Python 코드를 작성할 때 흔히 발생하는 버그 중 하나는 잘못된 들여쓰기입니다.
+
+
+
+### 주석
+
+주석은 코드를 더 읽기 쉽게 만들고 코드에 설명을 남기기 위해 매우 중요합니다. Python은 코드의 주석 부분을 실행하지 않습니다.
+Python에서 해시(#)로 시작하는 모든 텍스트는 주석입니다.
+
+**예시:한 문장 주석**
+
+```shell
+ # This is the first comment
+ # This is the second comment
+ # Python is eating the world
+```
+
+**예시: 여러 문장 주석**
+
+Triple quote can be used for multiline comment if it is not assigned to a variable
+
+```shell
+"""This is multiline comment
+multiline comment takes multiple lines.
+python is eating the world
+"""
+```
+
+### 데이터 타입
+
+Python에는 여러 유형의 데이터 유형이 있습니다. 가장 일반적인 것부터 시작하겠습니다. 다른 데이터 유형은 다른 섹션에서 자세히 다룰 것입니다. 당분간 다양한 데이터 유형을 살펴보고 익숙해지도록 합시다. 지금은 명확하게 이해하지 않아도 됩니다.
+
+#### Number
+
+- Integer: 정수(음수, 영 그리고 양수)
+ 예시:
+ ... -3, -2, -1, 0, 1, 2, 3 ...
+- Float: 십진수
+ 예시
+ ... -3.5, -2.25, -1.0, 0.0, 1.1, 2.2, 3.5 ...
+- Complex
+ 예시
+ 1 + j, 2 + 4j
+
+#### String
+
+작은따옴표 또는 큰따옴표 아래에 있는 하나 이상의 문자 모음입니다. 문자열이 두 문장 이상인 경우 삼중 따옴표를 사용합니다.
+
+**예시:**
+
+```py
+'Asabeneh'
+'Finland'
+'Python'
+'I love teaching'
+'I hope you are enjoying the first day of 30DaysOfPython Challenge'
+```
+
+#### Boolean
+
+부울 데이터 유형은 True 또는 False 값입니다. T와 F는 항상 대문자여야 합니다.
+
+**예시:**
+
+```python
+ True # 불이 켜져있나요? 그러면 참입니다.
+ False # 불이 꺼져있나요? 그러면 거짓입니다.
+```
+
+#### List
+
+Python 리스트는 다른 데이터 유형 항목을 저장할 수 있는 정렬된 컬렉션입니다. 리스트는 JavaScript의 배열과 비슷합니다.
+
+**Example:**
+
+```py
+[0, 1, 2, 3, 4, 5] # 모두 동일한 데이터 유형 - 숫자 리스트
+['Banana', 'Orange', 'Mango', 'Avocado'] # 모두 동일한 데이터 유형 - 문자열 리스트(과일)
+['Finland','Estonia', 'Sweden','Norway'] # 모두 동일한 데이터 유형 - 문자열 리스트(국가)
+['Banana', 10, False, 9.81] # 리스트의 다양한 데이터 유형 - 문자열, 정수, 부울 및 부동 소수점
+```
+
+#### Dictionary
+
+Python 사전 개체는 키 값 쌍 형식의 정렬되지 않은 데이터 모음입니다.
+
+**Example:**
+
+```py
+{
+'first_name':'Asabeneh',
+'last_name':'Yetayeh',
+'country':'Finland',
+'age':250,
+'is_married':True,
+'skills':['JS', 'React', 'Node', 'Python']
+}
+```
+
+#### Tuple
+
+튜플은 목록과 같은 다양한 데이터 유형의 정렬된 모음이지만 튜플이 생성되면 수정할 수 없습니다. 그것들은 변할 수 없습니다.
+
+**Example:**
+
+```py
+('Asabeneh', 'Pawel', 'Brook', 'Abraham', 'Lidiya') # Names
+```
+
+```py
+('Earth', 'Jupiter', 'Neptune', 'Mars', 'Venus', 'Saturn', 'Uranus', 'Mercury') # planets
+```
+
+#### Set
+
+집합은 목록 및 튜플과 유사한 데이터 유형의 모음입니다. 목록 및 튜플과 달리 집합은 순서가 지정된 항목 모음이 아닙니다. 수학에서와 마찬가지로 Python에서 set은 고유한 항목만 저장합니다.
+
+이후 섹션에서는 각각의 모든 Python 데이터 유형에 대해 자세히 설명합니다.
+
+**Example:**
+
+```py
+{2, 4, 3, 5}
+{3.14, 9.81, 2.7} # order is not important in set
+```
+
+### 데이터 타입 체크
+
+특정 데이터/변수의 데이터 유형을 확인하기 위해 **type** 기능을 사용합니다. 다음 터미널에서 다양한 Python 데이터 유형을 볼 수 있습니다:
+
+
+
+### Python 파일
+
+먼저 프로젝트 폴더인 30DaysOfPython을 엽니다. 이 폴더가 없으면 30DaysOfPython이라는 폴더 이름을 만듭니다. 이 폴더 안에 helloworld.py라는 파일을 만듭니다. 이제 Visual Studio 코드를 사용하여 Python 대화형 셸에서 수행한 작업을 수행해 보겠습니다.
+
+Python 대화형 셸은 **print**를 사용하지 않고 인쇄했지만 Visual Studio 코드에서 결과를 보려면 내장 함수 *print()를 사용해야 합니다. *print()* 내장 함수는 *print('arument1', 'argument2', 'argument3')*와 같이 하나 이상의 인수를 사용합니다. 아래 예를 참조하십시오.
+
+**Example:**
+
+파일 이름은 helloworld.py.
+
+```py
+# Day 1 - 30DaysOfPython Challenge
+
+print(2 + 3) # addition(+)
+print(3 - 1) # subtraction(-)
+print(2 * 3) # multiplication(*)
+print(3 / 2) # division(/)
+print(3 ** 2) # exponential(**)
+print(3 % 2) # modulus(%)
+print(3 // 2) # Floor division operator(//)
+
+# Checking data types
+print(type(10)) # Int
+print(type(3.14)) # Float
+print(type(1 + 3j)) # Complex number
+print(type('Asabeneh')) # String
+print(type([1, 2, 3])) # List
+print(type({'name':'Asabeneh'})) # Dictionary
+print(type({9.8, 3.14, 2.7})) # Set
+print(type((9.8, 3.14, 2.7))) # Tuple
+```
+
+Python 파일을 실행하려면 아래 이미지를 확인하세요. Visual Studio Code에서 녹색 버튼을 실행하거나 터미널에 *python helloworld.py*를 입력하여 Python 파일을 실행할 수 있습니다.
+
+
+
+🌕 좋습니다. 당신은 방금 1일차 도전을 완료했고 당신은 위대한 여정에 있습니다. 이제 뇌와 근육을 위한 몇 가지 훈련을 해봅시다.
+
+## 💻 Exercises - Day 1
+
+### Exercise: Level 1
+
+1. 사용 중인 Python 버전 확인
+2. Python 대화형 셸을 열고 다음 작업을 수행합니다. 피연산자는 3과 4입니다.
+ - 더하기(+)
+ - 빼기(-)
+ - 곱하기(\*)
+ - 나머지(%)
+ - 나누기(/)
+ - 지수(\*\*)
+ - 정수 나누기(//)
+3. Python 대화형 셸에 문자열을 씁니다. 문자열은 다음과 같습니다:
+ - 이름
+ - 가족 이름
+ - 국가 이름
+ - I am enjoying 30 days of python
+4. 다음 데이터의 데이터 유형을 확인하십시오.:
+ - 10
+ - 9.8
+ - 3.14
+ - 4 - 4j
+ - ['Asabeneh', 'Python', 'Finland']
+ - 이름
+ - 가족 이름
+ - 국가 이름
+
+### Exercise: Level 2
+
+1. 30DaysOfPython 폴더 안에 day_1이라는 폴더를 만듭니다. day_1 폴더 안에 python 파일 helloworld.py를 만들고 질문 1, 2, 3, 4를 반복하세요. Python 파일에서 작업할 때 _print()_를 사용하는 것을 잊지 마세요. 파일을 저장한 디렉토리로 이동하여 실행합니다.
+
+### Exercise: Level 3
+
+1. Number(Integer, Float, Complex), String, Boolean, List, Tuple, Set 및 Dictionary와 같은 다양한 Python 데이터 유형에 대한 예제를 작성합니다.
+2. 참고 [Euclidian distance](https://en.wikipedia.org/wiki/Euclidean_distance#:~:text=In%20mathematics%2C%20the%20Euclidean%20distance,being%20called%20the%20Pythagorean%20distance.) (2, 3) 과 (10, 8) 사이
+
+🎉 축하합니다 ! 🎉
+
+[Day 2 >>](../02_Day_Variables_builtin_functions/02_variables_builtin_functions.md)
\ No newline at end of file