diff --git a/05_Day_Lists/05_lists.md b/05_Day_Lists/05_lists.md
index ac18fce3..b3fb49f6 100644
--- a/05_Day_Lists/05_lists.md
+++ b/05_Day_Lists/05_lists.md
@@ -364,7 +364,7 @@ print(fruits) # []
### Copying a List
-It is possible to copy a list by reassigning it to a new variable in the following way: list2 = list1. Now, list2 is a reference of list1, any changes we make in list2 will also modify the original, list2. But there are lots of case in which we do not like to modify the original instead we like to have a different copy. One of way of avoiding the problem above is using _copy()_.
+It is possible to copy a list by reassigning it to a new variable in the following way: list2 = list1. Now, list2 is a reference of list1, any changes we make in list2 will also modify the original, list1. But there are lots of case in which we do not like to modify the original instead we like to have a different copy. One of way of avoiding the problem above is using _copy()_.
```py
# syntax
diff --git a/Korean/02_Day_Variables_builtin_functions/02_variables_builtin_functions.md b/Korean/02_Day_Variables_builtin_functions/02_variables_builtin_functions.md
new file mode 100644
index 00000000..0e8506b2
--- /dev/null
+++ b/Korean/02_Day_Variables_builtin_functions/02_variables_builtin_functions.md
@@ -0,0 +1,317 @@
+
+
30 Days Of Python: Day 2 - 변수, 내장 함수
+
+
+
+
Author:
+Asabeneh Yetayeh
+ Second Edition: July, 2021
+
+
+
+
+[<< Day 1](../readme.md) | [Day 3 >>](../03_Day_Operators/03_operators.md)
+
+
+
+- [📘 Day 2](#-day-2)
+ - [내장 함수](#내장-함수)
+ - [변수](#변수)
+ - [한 줄로 여러개의 변수 선언](#한-줄로-여러개의-변수-선언)
+ - [자료형](#자료형)
+ - [자료형 확인 및 형변환](#자료형-확인-및-형변환)
+ - [숫자](#숫자)
+ - [💻 Exercises - Day 2](#-exercises---day-2)
+ - [Exercises: Level 1](#exercises-level-1)
+ - [Exercises: Level 2](#exercises-level-2)
+
+# 📘 Day 2
+
+## 내장 함수
+
+파이썬에는 수많은 내장 함수가 있습니다. 내장 함수는 전역에서 사용 가능하고 그건 importing 이나 configuring없이 내장 함수를 사용 가능하다는 뜻입니다. 다음은 가장 자주 사용되는 파이썬 내장함수들 중 몇가지입니다: _print()_, _len()_, _type()_, _int()_, _float()_, _str()_, _input()_, _list()_, _dict()_, _min()_, _max()_, _sum()_, _sorted()_, _open()_, _file()_, _help()_, and _dir()_. 밑의 표에서 [파이썬 공식문서](https://docs.python.org/3.9/library/functions.html) 에 쓰여진 파이썬 내장 함수의 전체 목록을 볼 수 있습니다.
+
+
+
+파이썬 쉘을 열고 가장 자주 사용되는 내장 함수를 사용해봅시다.
+
+
+
+다른 내장 함수를 사용해 더 연습해봅시다.
+
+
+
+위의 터미널에서 볼 수 있듯이, 파이썬에는 reserved word가 있습니다. reserved word는 변수나 함수를 선언할때 사용되지 않습니다. 변수에 관해서는 다음 장에서 다룰것입니다.
+
+이제 당신은 내장 함수에 익숙해졌을 것이라 믿습니다. 한번 더 내장 함수의 연습을 하고 다음 장으로 넘어갑시다.
+
+
+## 변수
+
+변수는 컴퓨터 메모리에 정보를 저장합니다. Mnemonic 변수는 많은 프로그래밍 언어에서 사용하도록 권장됩니다. Mnemonic 변수는 쉽게 기억하고 연관지을 수 있는 변수 이름입니다. 한 변수는 정보가 저장되어있는 메모리 주소를 참조합니다.
+변수 이름을 지정할 때는 시작 부분의 숫자, 특수 문자, 하이픈을 사용할 수 없습니다. 변수는 짧은 이름(예: x, y, z)을 가질 수 있지만 더 변수에 대한 설명을 담은 이름(이름, 성, 나이, 국가)을 사용하는 것을 추천합니다.
+
+파이썬 변수 이름 규칙
+
+- 변수 이름은 문자 또는 밑줄 문자로 시작해야 합니다
+- 변수 이름은 숫자로 시작할 수 없습니다
+- 변수 이름에는 알파벳과 숫자와 밑줄(A-z, 0-9 및 \_)만 사용할 수 있습니다
+- 변수 이름은 대소문자를 구분합니다(firstname, Firstname, FirstName, FIRSTNAME은 서로 다른 변수)
+
+사용가능한 변수 이름들을 살펴봅시다
+
+```shell
+firstname
+lastname
+age
+country
+city
+first_name
+last_name
+capital_city
+_if # reserved word를 변수 이름으로 사용하고 싶은 경우
+year_2021
+year2021
+current_year_2021
+birth_year
+num1
+num2
+```
+
+사용할 수 없는 변수 이름들
+
+```shell
+first-name
+first@name
+first$name
+num-1
+1num
+```
+
+우리는 많은 파이썬 개발자들이 채택한 표준 파이썬 변수 명명 방식을 사용할 것입니다. 파이썬 개발자들은 스네이크 케이스(snake_case) 변수 명명 규칙을 사용합니다. 우리는 두 개 이상의 단어를 포함하는 변수에 대해 각 단어 뒤에 밑줄 문자를 사용합니다(예: first_name, last_name, engine_rotation_speed). 아래 예제는 변수의 표준 명명 예제이며, 변수 이름이 둘 이상의 단어일 경우 밑줄이 필요합니다.
+
+변수에 특정 데이터 유형을 할당할 때 이를 변수 선언이라고 합니다. 예를 들어 아래 예제에서 내 이름은 first_name 변수에 할당됩니다. 등호 기호는 할당 연산자입니다. 할당은 변수에 데이터를 저장하는 것을 의미합니다. 파이썬에서 등호 기호는 수학에서의 등호가 아닙니다.
+
+_Example:_
+
+```py
+# Variables in Python
+first_name = 'Asabeneh'
+last_name = 'Yetayeh'
+country = 'Finland'
+city = 'Helsinki'
+age = 250
+is_married = True
+skills = ['HTML', 'CSS', 'JS', 'React', 'Python']
+person_info = {
+ 'firstname':'Asabeneh',
+ 'lastname':'Yetayeh',
+ 'country':'Finland',
+ 'city':'Helsinki'
+ }
+```
+
+내장 함수인 _print()_ 와 _len()_ 을 사용해봅시다. Print 함수는 인자의 수에 제한이 없습니다. 인자는 함수 괄호 안에 넣어 전달할 수 있는 값입니다. 아래 예제를 봅시다.
+
+**Example:**
+
+```py
+print('Hello, World!') # Hello, World! 라는 글이 하나의 인자입니다
+print('Hello',',', 'World','!') # 여러개의 인자를 받을 수 있습니다, 네개의 인자가 넘겨졌습니다
+print(len('Hello, World!')) # 하나의 인자만을 받습니다
+```
+
+위에서 정의된 변수들을 찍어보고 길이를 찾아봅시다:
+
+**Example:**
+
+```py
+# 변수에 저장된 값 찍기
+
+print('First name:', first_name)
+print('First name length:', len(first_name))
+print('Last name: ', last_name)
+print('Last name length: ', len(last_name))
+print('Country: ', country)
+print('City: ', city)
+print('Age: ', age)
+print('Married: ', is_married)
+print('Skills: ', skills)
+print('Person information: ', person_info)
+```
+
+### 한 줄로 여러개의 변수 선언
+
+하나의 줄에서 여러개의 변수를 선언할 수도 있습니다:
+
+**Example:**
+
+```py
+first_name, last_name, country, age, is_married = 'Asabeneh', 'Yetayeh', 'Helsink', 250, True
+
+print(first_name, last_name, country, age, is_married)
+print('First name:', first_name)
+print('Last name: ', last_name)
+print('Country: ', country)
+print('Age: ', age)
+print('Married: ', is_married)
+```
+
+내장 함수 _input()_ 을 사용해 사용자의 입력 받기. 사용자로부터 받은 정보를 first_name과 age 변수에 할당해봅시다.
+**Example:**
+
+```py
+first_name = input('What is your name: ')
+age = input('How old are you? ')
+
+print(first_name)
+print(age)
+```
+
+## 자료형
+
+파이썬에는 몇 가지 자료형이 있습니다. 자료형을 식별하기 위해 내장 함수 _type()_ 을 사용합니다. 서로 다른 자료형을 잘 이해하는 데 집중해 주시기를 부탁드립니다. 프로그래밍에서 모든것은 자료형과 관련이 있습니다. 처음에 자료형을 소개했지만 모든 주제가 자료형과 관련이 있기 때문에 다시 나옵니다. 자료형에 대해서는 각 섹션에서 자세히 설명하겠습니다.
+
+## 자료형 확인 및 형변환
+
+- 자료형 확인: 특정 정보/변수의 자료형을 확인하기위해 우리는 _type()_ 을 사용합니다
+ **Example:**
+
+```py
+# 다양한 파이썬 자료형
+# 다양한 자료형의 변수들을 선언해 봅시다.
+
+first_name = 'Asabeneh' # str
+last_name = 'Yetayeh' # str
+country = 'Finland' # str
+city= 'Helsinki' # str
+age = 250 # int, 제 실제 나이가 아닙니다, 걱정마세요
+
+# Printing out types
+print(type('Asabeneh')) # str
+print(type(first_name)) # str
+print(type(10)) # int
+print(type(3.14)) # float
+print(type(1 + 1j)) # complex
+print(type(True)) # bool
+print(type([1, 2, 3, 4])) # list
+print(type({'name':'Asabeneh','age':250, 'is_married':250})) # dict
+print(type((1,2))) # tuple
+print(type(zip([1,2],[3,4]))) # set
+```
+
+- 형변환: 하나의 자료형을 다른 자료형으로 변환합니다. _int()_, _float()_, _str()_, _list_, _set_ 를 사용합니다.
+ 산술 연산을 수행할 때 문자열 숫자들을 먼저 int 나 float로 변환해야 합니다. 그렇지 않으면 오류가 반환됩니다. 만약 숫자를 문자열과 결합한다면, 그 숫자는 먼저 문자열로 변환되어야 합니다. 결합에 대해서는 String 섹션에서 설명하겠습니다.
+
+ **Example:**
+
+```py
+# int to float
+num_int = 10
+print('num_int',num_int) # 10
+num_float = float(num_int)
+print('num_float:', num_float) # 10.0
+
+# float to int
+gravity = 9.81
+print(int(gravity)) # 9
+
+# int to str
+num_int = 10
+print(num_int) # 10
+num_str = str(num_int)
+print(num_str) # '10'
+
+# str to int or float
+num_str = '10.6'
+print('num_int', int(num_str)) # 10
+print('num_float', float(num_str)) # 10.6
+
+# str to list
+first_name = 'Asabeneh'
+print(first_name) # 'Asabeneh'
+first_name_to_list = list(first_name)
+print(first_name_to_list) # ['A', 's', 'a', 'b', 'e', 'n', 'e', 'h']
+```
+
+## 숫자
+
+파이썬의 숫자 자료형:
+
+1. Integers: 정수(음수, 0 , 양수)
+ 예:
+ ... -3, -2, -1, 0, 1, 2, 3 ...
+
+2. 부동 소수점 숫자(10진수)
+ 예:
+ ... -3.5, -2.25, -1.0, 0.0, 1.1, 2.2, 3.5 ...
+
+3. 복소수
+ 예:
+ 1 + j, 2 + 4j, 1 - 1j
+
+🌕 당신은 정말 멋집니다. 여러분은 이제 막 2일차 도전을 마쳤고 위대함으로 가는 길에 두 걸음 앞서 있습니다. 이제 여러분의 뇌와 근육을 위한 운동을 하세요.
+
+## 💻 Exercises - Day 2
+
+### Exercises: Level 1
+
+1. 30DaysOfPython 내에 day_2라는 폴더를 생성하세요. 그 폴더 내에 variables.py 라는 파일을 생성하세요.
+2. 'Day 2: 30 Days of python programming'이라는 파이썬 주석을 작성합니다.
+3. first name 변수를 선언하고 변수에 값을 할당합니다.
+4. last name 변수를 선언하고 변수에 값을 할당합니다.
+5. full name 변수를 선언하고 변수에 값을 할당합니다.
+6. country 변수를 선언하고 값을 할당합니다.
+7. city 변수를 선언하고 값을 할당합니다.
+8. age 변수를 선언하고 값을 할당합니다.
+9. year 변수를 선언하고 값을 할당합니다.
+10. is_married 변수를 선언하고 값을 할당합니다.
+11. is_true 변수를 선언하고 값을 할당합니다.
+12. is_light_on 변수를 선언하고 값을 할당합니다.
+13. 한 줄에 여러개의 변수를 선언합니다.
+
+### Exercises: Level 2
+
+1. Check the data type of all your variables using type() built-in function
+1. Using the _len()_ built-in function, find the length of your first name
+1. Compare the length of your first name and your last name
+1. Declare 5 as num_one and 4 as num_two
+ 1. Add num_one and num_two and assign the value to a variable total
+ 2. Subtract num_two from num_one and assign the value to a variable diff
+ 3. Multiply num_two and num_one and assign the value to a variable product
+ 4. Divide num_one by num_two and assign the value to a variable division
+ 5. Use modulus division to find num_two divided by num_one and assign the value to a variable remainder
+ 6. Calculate num_one to the power of num_two and assign the value to a variable exp
+ 7. Find floor division of num_one by num_two and assign the value to a variable floor_division
+1. The radius of a circle is 30 meters.
+ 1. Calculate the area of a circle and assign the value to a variable name of _area_of_circle_
+ 2. Calculate the circumference of a circle and assign the value to a variable name of _circum_of_circle_
+ 3. Take radius as user input and calculate the area.
+1. Use the built-in input function to get first name, last name, country and age from a user and store the value to their corresponding variable names
+1. Run help('keywords') in Python shell or in your file to check for the Python reserved words or keywords
+
+1. type() 내장 함수를 사용하여 모든 변수의 자료형을 확인합니다.
+1. _len()_ 내장 함수를 사용하여 당신의 first name 의 길이를 찾습니다.
+1. 당신의 first name 과 last name 의 길이를 비교합니다.
+1. 5를 num_1로, 4를 num_2로 선언합니다.
+ 1. num_one과 num_two를 더하고 그 값을 변수 total 에 할당합니다.
+ 2. num_1에서 num_2를 빼고 그 값을 변수 diff 에 할당합니다.
+ 3. num_two와 num_one을 곱하여 그 값을 변수 product 에 할당합니다.
+ 4. num_one을 num_two로 나누고 그 값을 변수 division 에 할당합니다.
+ 5. 나머지 연산을 사용하여 num_two를 num_one으로 나눈 값을 찾고 변수 remainder 에 할당합니다.
+ 6. num_one을 num_two의 거듭제곱으로 계산하고 그 값을 변수 exp 에 할당합니다.
+ 7. num_one을 num_two로 나누고 소숫값은 버린 정수 값을 구하고 변수 floor_division 에 값을 할당합니다.
+1. 원의 반지름은 30미터입니다.
+ 1. 원의 면적을 계산하여 _area_of_circle_ 이라는 이름의 변수에 값을 할당합니다.
+ 2. 원의 둘레를 계산하여 _circum_of_circum_ 이라는 이름의 변수에 값을 할당합니다.
+ 3. 반경을 사용자 입력으로 받아서 면적을 계산합니다.
+1. 내장 함수 input을 사용하여 사용자로부터 이름, 성, 국가 및 나이를 얻고 해당 변수 이름에 값을 저장합니다.
+1. Python 셸 또는 파일에서 help('keywords')을 실행하여 파이썬의 reserved words 또는 키워드를 확인합니다.
+
+🎉 축하합니다 ! 🎉
+
+[<< Day 1](../readme.md) | [Day 3 >>](../03_Day_Operators/03_operators.md)
diff --git a/Korean/04_strings_ko.md b/Korean/04_strings_ko.md
new file mode 100644
index 00000000..a5e1d774
--- /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)
+ - [문자열 만들기](#문자열-만들기)
+ - [문자열 연결](#문자열-연결)
+ - [문자열의 이스케이프 시퀀스](#문자열의-이스케이프-시퀀스)
+ - [문자열 포매팅](#문자열-포매팅)
+ - [올드 스타일 문자열 포매팅(% 연산자)](#올드-스타일-문자열-포매팅%-연산자)
+ - [새로운 스타일 문자열 포매팅(str.format)](#새로운-스타일-문자열-포매팅str.format)
+ - [문자열 Interpolation / f-Strings (Python 3.6+)](#string-interpolation--f-strings-python-36)
+ - [문자 시퀀스로서의 Python 문자열](#문자-시퀀스로서의-Python-문자열)
+ - [언패킹 문자](#언패킹-문자)
+ - [인덱스로 문자열의 문자에 액세스](#인덱스로-문자열의-문자에-액세스)
+ - [파이썬 문자열 슬라이싱](#파이썬-문자열-슬라이싱)
+ - [문자열 리버스](#문자열-리버스)
+ - [슬라이싱하는 동안 문자 건너뛰기](#슬라이싱하는-동안-문자-건너뛰기)
+ - [문자열 메서드](#문자열-메서드)
+ - [💻 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/05_Day_Lists/05_lists.md b/Korean/05_Day_Lists/05_lists.md
new file mode 100644
index 00000000..4b4e89a1
--- /dev/null
+++ b/Korean/05_Day_Lists/05_lists.md
@@ -0,0 +1,588 @@
+
+
30 Days Of Python: Day 5 - Lists
+
+
+
+
Author:
+Asabeneh Yetayeh
+ Second Edition: July - 2021
+
+
+
+
+[<< Day 4](../04_Day_Strings/04_strings.md) | [Day 6 >>](../06_Day_Tuples/06_tuples.md)
+
+
+
+- [Day 5](#day-5)
+ - [Lists](#lists)
+ - [How to Create a List](#how-to-create-a-list)
+ - [Accessing List Items Using Positive Indexing](#accessing-list-items-using-positive-indexing)
+ - [Accessing List Items Using Negative Indexing](#accessing-list-items-using-negative-indexing)
+ - [Unpacking List Items](#unpacking-list-items)
+ - [Slicing Items from a List](#slicing-items-from-a-list)
+ - [Modifying Lists](#modifying-lists)
+ - [Checking Items in a List](#checking-items-in-a-list)
+ - [Adding Items to a List](#adding-items-to-a-list)
+ - [Inserting Items into a List](#inserting-items-into-a-list)
+ - [Removing Items from a List](#removing-items-from-a-list)
+ - [Removing Items Using Pop](#removing-items-using-pop)
+ - [Removing Items Using Del](#removing-items-using-del)
+ - [Clearing List Items](#clearing-list-items)
+ - [Copying a List](#copying-a-list)
+ - [Joining Lists](#joining-lists)
+ - [Counting Items in a List](#counting-items-in-a-list)
+ - [Finding Index of an Item](#finding-index-of-an-item)
+ - [Reversing a List](#reversing-a-list)
+ - [Sorting List Items](#sorting-list-items)
+ - [💻 Exercises: Day 5](#-exercises-day-5)
+ - [Exercises: Level 1](#exercises-level-1)
+ - [Exercises: Level 2](#exercises-level-2)
+
+# Day 5
+
+## Lists
+
+파이썬에는 네 가지 컬렉션 자료형이 있습니다.
+
+- List: 정렬되고 변경 가능(수정 가능)한 컬렉션입니다. 중복 값을 허용합니다.
+- Tuple: 정렬되고 변경 불가능하거나 수정 불가능한(불변) 컬렉션입니다. 중복 값을 허용합니다.
+- Set: 순서가 지정되지 않고 인덱스가 없고 수정할 수 없는 컬렉션이지만 새 아이템을 추가할 수 있습니다. 중복 값은 허용되지 않습니다.
+- Dictionary: 정렬되지 않고 변경 가능(수정 가능)하며 인덱스가 있는 컬렉션입니다. 중복 값이 없습니다.
+
+리스트는 정렬되고 수정(변경) 가능한 다양한 자료형의 컬렉션입니다. 목록은 비어 있거나 다른 자료형 아이템을 가질 수 있습니다.
+
+### How to Create a List
+
+파이썬에서 리스트는 두가지 방법으로 생성할 수 있습니다:
+
+- list 내장 함수를 사용
+
+```py
+# syntax
+lst = list()
+```
+
+```py
+empty_list = list() # 이건 빈 리스트 입니다, 리스트 안에 아무 값도 없습니다
+print(len(empty_list)) # 0
+```
+
+- 대괄호 사용, []
+
+```py
+# syntax
+lst = []
+```
+
+```py
+empty_list = [] # 이건 빈 리스트 입니다, 리스트 안에 아무 값도 없습니다
+print(len(empty_list)) # 0
+```
+
+초기 값이 있는 리스트입니다. _len()_ 을 사용하여 리스트의 길이를 찾습니다.
+
+```py
+fruits = ['banana', 'orange', 'mango', 'lemon'] # list of fruits
+vegetables = ['Tomato', 'Potato', 'Cabbage','Onion', 'Carrot'] # list of vegetables
+animal_products = ['milk', 'meat', 'butter', 'yoghurt'] # list of animal products
+web_techs = ['HTML', 'CSS', 'JS', 'React','Redux', 'Node', 'MongDB'] # list of web technologies
+countries = ['Finland', 'Estonia', 'Denmark', 'Sweden', 'Norway']
+
+# Print the lists and its length
+print('Fruits:', fruits)
+print('Number of fruits:', len(fruits))
+print('Vegetables:', vegetables)
+print('Number of vegetables:', len(vegetables))
+print('Animal products:',animal_products)
+print('Number of animal products:', len(animal_products))
+print('Web technologies:', web_techs)
+print('Number of web technologies:', len(web_techs))
+print('Countries:', countries)
+print('Number of countries:', len(countries))
+```
+
+```sh
+output
+Fruits: ['banana', 'orange', 'mango', 'lemon']
+Number of fruits: 4
+Vegetables: ['Tomato', 'Potato', 'Cabbage', 'Onion', 'Carrot']
+Number of vegetables: 5
+Animal products: ['milk', 'meat', 'butter', 'yoghurt']
+Number of animal products: 4
+Web technologies: ['HTML', 'CSS', 'JS', 'React', 'Redux', 'Node', 'MongDB']
+Number of web technologies: 7
+Countries: ['Finland', 'Estonia', 'Denmark', 'Sweden', 'Norway']
+Number of countries: 5
+```
+
+- 리스트는 서로 다른 자료형의 아이템을 가질 수 있습니다.
+
+```py
+ lst = ['Asabeneh', 250, True, {'country':'Finland', 'city':'Helsinki'}] # 다른 자료형을 가진 리스트
+```
+
+### Accessing List Items Using Positive Indexing
+
+인덱스를 사용하여 리스트의 각 아이템에 액세스합니다. 리스트 인덱스는 0부터 시작합니다. 아래 그림은 인덱스가 시작되는 위치를 명확하게 보여줍니다.
+
+
+```py
+fruits = ['banana', 'orange', 'mango', 'lemon']
+first_fruit = fruits[0] # 인덱스를 사용해 첫번째 아이템에 접근합니다
+print(first_fruit) # banana
+second_fruit = fruits[1]
+print(second_fruit) # orange
+last_fruit = fruits[3]
+print(last_fruit) # lemon
+# Last index
+last_index = len(fruits) - 1
+last_fruit = fruits[last_index]
+```
+
+### Accessing List Items Using Negative Indexing
+
+음수 인덱스는 끝에서 시작하는 것을 의미하며 -1은 마지막 아이템을, -2는 마지막에서 두번쨰 아이템을 의미합니다.
+
+
+
+```py
+fruits = ['banana', 'orange', 'mango', 'lemon']
+first_fruit = fruits[-4]
+last_fruit = fruits[-1]
+second_last = fruits[-2]
+print(first_fruit) # banana
+print(last_fruit) # lemon
+print(second_last) # mango
+```
+
+### Unpacking List Items
+
+```py
+lst = ['item','item2','item3', 'item4', 'item5']
+first_item, second_item, third_item, *rest = lst
+print(first_item) # item1
+print(second_item) # item2
+print(third_item) # item3
+print(rest) # ['item4', 'item5']
+
+```
+
+```py
+# First Example
+fruits = ['banana', 'orange', 'mango', 'lemon','lime','apple']
+first_fruit, second_fruit, third_fruit, *rest = lst
+print(first_fruit) # banana
+print(second_fruit) # orange
+print(third_fruit) # mango
+print(rest) # ['lemon','lime','apple']
+# Second Example about unpacking list
+first, second, third,*rest, tenth = [1,2,3,4,5,6,7,8,9,10]
+print(first) # 1
+print(second) # 2
+print(third) # 3
+print(rest) # [4,5,6,7,8,9]
+print(tenth) # 10
+# Third Example about unpacking list
+countries = ['Germany', 'France','Belgium','Sweden','Denmark','Finland','Norway','Iceland','Estonia']
+gr, fr, bg, sw, *scandic, es = countries
+print(gr)
+print(fr)
+print(bg)
+print(sw)
+print(scandic)
+print(es)
+```
+
+### Slicing Items from a List
+
+- 양수 인덱싱: start, end 및 step을 지정하여 양수 인덱스 범위를 지정할 수 있습니다. 반환 값은 새 리스트가 됩니다. (start의 디폴트값 = 0, end = len(lst) - 1 (마지막 아이템), step = 1)
+
+```py
+fruits = ['banana', 'orange', 'mango', 'lemon']
+all_fruits = fruits[0:4] # 모든 fruits를 반환합니다
+# 이것또한 위와 같은 값을 반환합니다
+all_fruits = fruits[0:] # 우리가 어디서 멈출 지 설정하지 않으면, 모든 것을 포함합니다
+orange_and_mango = fruits[1:3] # 첫번째 인덱스를 포함하지 않습니다
+orange_mango_lemon = fruits[1:]
+orange_and_lemon = fruits[::2] # 여기서 세번째 인자인 step을 사용했습니다. 모든 두번째 아이템을 포함합니다 - ['banana', 'mango']
+```
+
+- 음수 인덱싱: start, end 및 step을 지정하여 음수 인덱스의 범위를 지정할 수 있습니다. 반환 값은 새 리스트가 됩니다.
+
+```py
+fruits = ['banana', 'orange', 'mango', 'lemon']
+all_fruits = fruits[-4:] # 모든 fruits를 반환합니다
+orange_and_mango = fruits[-3:-1] # 마지막 인덱스를 포함하지 않습니다,['orange', 'mango']
+orange_mango_lemon = fruits[-3:] # 이것은 -3 부터 시작하여 끝까지의 값을 줍니다,['orange', 'mango', 'lemon']
+reverse_fruits = fruits[::-1] # 음수의 step은 리스트를 역순으로 가집니다,['lemon', 'mango', 'orange', 'banana']
+```
+
+### Modifying Lists
+
+리스트는 변경 가능하거나 수정 가능한 순서가 있는 아이템들의 컬렉션입니다. 과일 리스트를 수정해봅시다.
+
+```py
+fruits = ['banana', 'orange', 'mango', 'lemon']
+fruits[0] = 'avocado'
+print(fruits) # ['avocado', 'orange', 'mango', 'lemon']
+fruits[1] = 'apple'
+print(fruits) # ['avocado', 'apple', 'mango', 'lemon']
+last_index = len(fruits) - 1
+fruits[last_index] = 'lime'
+print(fruits) # ['avocado', 'apple', 'mango', 'lime']
+```
+
+### Checking Items in a List
+
+*in* 연산자를 사용하여 아이템이 리스트의 구성원인지 확인합니다. 아래 예시를 봅시다.
+
+```py
+fruits = ['banana', 'orange', 'mango', 'lemon']
+does_exist = 'banana' in fruits
+print(does_exist) # True
+does_exist = 'lime' in fruits
+print(does_exist) # False
+```
+
+### Adding Items to a List
+
+기존 리스트의 끝에 아이템을 추가하려면 *append()* 메서드를 사용합니다.
+
+```py
+# syntax
+lst = list()
+lst.append(item)
+```
+
+```py
+fruits = ['banana', 'orange', 'mango', 'lemon']
+fruits.append('apple')
+print(fruits) # ['banana', 'orange', 'mango', 'lemon', 'apple']
+fruits.append('lime') # ['banana', 'orange', 'mango', 'lemon', 'apple', 'lime']
+print(fruits)
+```
+
+### Inserting Items into a List
+
+*insert()* 메서드를 사용하여 목록의 지정된 인덱스에 하나의 아이템을 삽입할 수 있습니다. 다른 아이템들은 오른쪽으로 이동한다는 것에 주의합시다. *insert()* 메서드는 인덱스와 삽입할 아이템이라는 두 가지 인자를 가집니다.
+
+```py
+# syntax
+lst = ['item1', 'item2']
+lst.insert(index, item)
+```
+
+```py
+fruits = ['banana', 'orange', 'mango', 'lemon']
+fruits.insert(2, 'apple') # orange와 mango 사이에 apple을 삽입
+print(fruits) # ['banana', 'orange', 'apple', 'mango', 'lemon']
+fruits.insert(3, 'lime') # ['banana', 'orange', 'apple', 'lime', 'mango', 'lemon']
+print(fruits)
+```
+
+### Removing Items from a List
+
+remove 메서드는 리스트에서 지정된 아이템을 삭제합니다.
+
+```py
+# syntax
+lst = ['item1', 'item2']
+lst.remove(item)
+```
+
+```py
+fruits = ['banana', 'orange', 'mango', 'lemon', 'banana']
+fruits.remove('banana')
+print(fruits) # ['orange', 'mango', 'lemon', 'banana'] - 이 메서드는 리스트에서 첫번째로 존재하는 아이템을 삭제합니다
+fruits.remove('lemon')
+print(fruits) # ['orange', 'mango', 'banana']
+```
+
+### Removing Items Using Pop
+
+*pop()* 메서드는 지정된 인덱스를 제거합니다(또는 인덱스가 지정되지 않은 경우 마지막 아이템):
+
+```py
+# syntax
+lst = ['item1', 'item2']
+lst.pop() # 마지막 아이템
+lst.pop(index)
+```
+
+```py
+fruits = ['banana', 'orange', 'mango', 'lemon']
+fruits.pop()
+print(fruits) # ['banana', 'orange', 'mango']
+
+fruits.pop(0)
+print(fruits) # ['orange', 'mango']
+```
+
+### Removing Items Using Del
+
+*del* 키워드는 지정된 인덱스를 삭제하며 인덱스 범위 내의 아이템을 삭제하는 데도 사용할 수 있습니다. 또한 리스트를 완전히 삭제할 수도 있습니다.
+
+```py
+# syntax
+lst = ['item1', 'item2']
+del lst[index] # 하니의 아이템
+del lst # 리스트를 완전히 삭제
+```
+
+```py
+fruits = ['banana', 'orange', 'mango', 'lemon', 'kiwi', 'lime']
+del fruits[0]
+print(fruits) # ['orange', 'mango', 'lemon', 'kiwi', 'lime']
+del fruits[1]
+print(fruits) # ['orange', 'lemon', 'kiwi', 'lime']
+del fruits[1:3] # 이것은 주어진 인덱스 사이의 아이템을 삭제합니다, 그러므로 인덱스가 3인 아이템은 삭제되지 않습니다!
+print(fruits) # ['orange', 'lime']
+del fruits
+print(fruits) # NameError: name 'fruits' is not defined 가 발생해야합니다
+```
+
+### Clearing List Items
+
+*clear()* 메서드를 사용해 리스트 비우기:
+
+```py
+# syntax
+lst = ['item1', 'item2']
+lst.clear()
+```
+
+```py
+fruits = ['banana', 'orange', 'mango', 'lemon']
+fruits.clear()
+print(fruits) # []
+```
+
+### Copying a List
+
+다음의 방법으로 새 변수에 재할당하여 리스트를 복사할 수 있습니다:list2 = list1. 이제 list2는 list1의 참조이며, list2에서 변경한 내용은 원본 list1도 수정합니다. 하지만 원본을 수정하고 싶지 않고 다른 사본을 갖고 싶어하는 경우가 많습니다. 위의 문제를 피하는 한 가지 방법은 _copy()_ 를 사용하는 것입니다.
+
+```py
+# syntax
+lst = ['item1', 'item2']
+lst_copy = lst.copy()
+```
+
+```py
+fruits = ['banana', 'orange', 'mango', 'lemon']
+fruits_copy = fruits.copy()
+print(fruits_copy) # ['banana', 'orange', 'mango', 'lemon']
+```
+
+### Joining Lists
+
+파이썬에서 두 개 이상의 목록을 결합하거나 연결하는 방법은 여러 가지가 있습니다.
+
+- 플러스 연산자 (+)
+
+```py
+# syntax
+list3 = list1 + list2
+```
+
+```py
+positive_numbers = [1, 2, 3, 4, 5]
+zero = [0]
+negative_numbers = [-5,-4,-3,-2,-1]
+integers = negative_numbers + zero + positive_numbers
+print(integers) # [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5]
+fruits = ['banana', 'orange', 'mango', 'lemon']
+vegetables = ['Tomato', 'Potato', 'Cabbage', 'Onion', 'Carrot']
+fruits_and_vegetables = fruits + vegetables
+print(fruits_and_vegetables ) # ['banana', 'orange', 'mango', 'lemon', 'Tomato', 'Potato', 'Cabbage', 'Onion', 'Carrot']
+```
+
+- extend() 메서드를 사용하여 연결
+ *extend()* 메서드를 사용하면 리스트에 리스트를 추가할 수 있습니다. 아래 예를 참조합시다.
+
+```py
+# syntax
+list1 = ['item1', 'item2']
+list2 = ['item3', 'item4', 'item5']
+list1.extend(list2)
+```
+
+```py
+num1 = [0, 1, 2, 3]
+num2= [4, 5, 6]
+num1.extend(num2)
+print('Numbers:', num1) # Numbers: [0, 1, 2, 3, 4, 5, 6]
+negative_numbers = [-5,-4,-3,-2,-1]
+positive_numbers = [1, 2, 3,4,5]
+zero = [0]
+
+negative_numbers.extend(zero)
+negative_numbers.extend(positive_numbers)
+print('Integers:', negative_numbers) # Integers: [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5]
+fruits = ['banana', 'orange', 'mango', 'lemon']
+vegetables = ['Tomato', 'Potato', 'Cabbage', 'Onion', 'Carrot']
+fruits.extend(vegetables)
+print('Fruits and vegetables:', fruits ) # Fruits and vegetables: ['banana', 'orange', 'mango', 'lemon', 'Tomato', 'Potato', 'Cabbage', 'Onion', 'Carrot']
+```
+
+### Counting Items in a List
+
+*count()* 메서드는 리스트에 아이템이 나타나는 횟수를 반환합니다:
+
+```py
+# syntax
+lst = ['item1', 'item2']
+lst.count(item)
+```
+
+```py
+fruits = ['banana', 'orange', 'mango', 'lemon']
+print(fruits.count('orange')) # 1
+ages = [22, 19, 24, 25, 26, 24, 25, 24]
+print(ages.count(24)) # 3
+```
+
+### Finding Index of an Item
+
+*index()* 메서드는 리스트에 있는 아이템의 인덱스를 반환합니다:
+
+```py
+# syntax
+lst = ['item1', 'item2']
+lst.index(item)
+```
+
+```py
+fruits = ['banana', 'orange', 'mango', 'lemon']
+print(fruits.index('orange')) # 1
+ages = [22, 19, 24, 25, 26, 24, 25, 24]
+print(ages.index(24)) # 2, 처음 만난 것
+```
+
+### Reversing a List
+
+*reverse()* 메서드는 리스트의 순서를 거꾸로 합니다.
+
+```py
+# syntax
+lst = ['item1', 'item2']
+lst.reverse()
+
+```
+
+```py
+fruits = ['banana', 'orange', 'mango', 'lemon']
+fruits.reverse()
+print(fruits) # ['lemon', 'mango', 'orange', 'banana']
+ages = [22, 19, 24, 25, 26, 24, 25, 24]
+ages.reverse()
+print(ages) # [24, 25, 24, 26, 25, 24, 19, 22]
+```
+
+### Sorting List Items
+
+리스트를 정렬하려면 _sort()_ 메서드 또는 _sorted()_ 내장 함수를 사용할 수 있습니다. _sort()_ 메서드는 리스트 아이템을 오름차순으로 정렬하고 원래 리스트를 수정합니다. 만약 _sort()_ 메서드의 reverse의 인자가 true라면, 그것은 목록을 내림차순으로 배열할 것입니다.
+
+- sort(): 이 메서드는 원래 리스트를 수정합니다
+
+ ```py
+ # syntax
+ lst = ['item1', 'item2']
+ lst.sort() # 오름차순
+ lst.sort(reverse=True) # 내림차순
+ ```
+
+ **Example:**
+
+ ```py
+ fruits = ['banana', 'orange', 'mango', 'lemon']
+ fruits.sort()
+ print(fruits) # 알파벳순으로 정렬, ['banana', 'lemon', 'mango', 'orange']
+ fruits.sort(reverse=True)
+ print(fruits) # ['orange', 'mango', 'lemon', 'banana']
+ ages = [22, 19, 24, 25, 26, 24, 25, 24]
+ ages.sort()
+ print(ages) # [19, 22, 24, 24, 24, 25, 25, 26]
+
+ ages.sort(reverse=True)
+ print(ages) # [26, 25, 25, 24, 24, 24, 22, 19]
+ ```
+
+ sorted(): 원래 리스트를 수정하지 않고 정렬된 리스트를 반환합니다
+ **Example:**
+
+ ```py
+ fruits = ['banana', 'orange', 'mango', 'lemon']
+ print(sorted(fruits)) # ['banana', 'lemon', 'mango', 'orange']
+ # 역순
+ fruits = ['banana', 'orange', 'mango', 'lemon']
+ fruits = sorted(fruits,reverse=True)
+ print(fruits) # ['orange', 'mango', 'lemon', 'banana']
+ ```
+
+🌕 당신은 성실하고 이미 많은 것을 성취했습니다. 여러분은 이제 막 5일차 도전을 마쳤고 위대함을 향한 5걸음 앞에 있습니다. 이제 여러분의 뇌와 근육을 위한 운동을 하세요.
+
+## 💻 Exercises: Day 5
+
+### Exercises: Level 1
+
+1. 빈 리스트를 선언합니다
+2. 5개 이상의 아이템을 갖는 리스트를 선언합니다
+3. 당신의 리스트의 길이를 알아봅니다
+4. 리스트의 첫번째, 중간의, 마지막 아이템을 얻어봅니다
+5. mixed_data_types 라는 리스트를 선언하고, 당신의 이름, 나이, 키, 결혼 여부, 주소를 넣어봅시다
+6. it_companies 라는 이름의 목록 변수를 선언하고 초기 값에 Facebook, Google, Microsoft, Apple, IBM, Oracle 및 Amazon을 할당합니다
+7. _print()_ 를 사용하여 리스트를 프린트 합니다
+8. 리스트에 있는 기업 수를 프린트 합니다
+9. 첫번째, 중간, 마지막 기업을 프린트 합니다
+10. 기업 중 하나를 수정하고 리스트를 프린트 합니다
+11. it_companies 에 하나의 IT 기업을 추가합니다
+12. 회사 리스트 중간에 IT 기업을 추가합니다
+13. it_companies 이름 중 하나를 대문자로 변경합니다 (IBM 제외!)
+14. '#; ' 라는 문자열로 it_companies 에 연결합니다
+15. it_companies 리스트에 특정 기업이 존재하는 지 확인합니다
+16. sort() 메서드를 사용해 리스트를 정렬합니다
+17. reverse() 메서드를 사용하여 리스트를 내림차순으로 반전합니다
+18. 리스트에서 처음 3개의 기업을 잘라냅니다
+19. 리스트에서 마지막 3개의 기업을 잘라냅니다
+20. 리스트에서 중간의 IT 기업 또는 기업들을 잘라냅니다
+21. 리스트에서 첫번째 IT 기업을 삭제합니다
+22. 리스트에서 중간의 IT 기업 또는 기업들을 삭제합니다
+23. 리스트에서 마지막 IT 기업을 삭제합니다
+24. 리스트에서 모든 IT 기업을 삭제합니다
+25. IT 기업 리스트를 완전히 제거합니다
+26. 다음 리스트를 연결합니다:
+
+ ```py
+ front_end = ['HTML', 'CSS', 'JS', 'React', 'Redux']
+ back_end = ['Node','Express', 'MongoDB']
+ ```
+
+27. 26번 문제의 리스트를 연결한 후, 연결된 리스트를 복사해 full_stack 변수에 할당합니다. 그리고 Python, SQL, Redux를 삽입합니다.
+
+### Exercises: Level 2
+
+1. 다음은 10명의 학생의 나이 리스트입니다:
+
+```sh
+ages = [19, 22, 19, 24, 20, 25, 26, 24, 25, 24]
+```
+
+- 리스트를 정렬하고 최소값 및 최대값 찾습니다
+- 리스트에 최소값 및 최대값을 다시 추가합니다
+- 나이의 중위값을 찾습니다(중간 아이템 하나 또는 중간 아이템 두 개를 2로 나눈 값)
+- 평균 나이를 구합니다(모든 아이템의 합을 개수로 나눈 값)
+- 나이의 범위를 구합니다(최대값 빼기 최소값)
+- (최소값 - 평균)과 (최대값 - 평균)의 값을 비교하고 _abs()_ 메서드를 사용합니다.
+
+1. [국가 목록](https://github.com/Asabeneh/30-Days-Of-Python/tree/master/data/countries.py) 에서 중간 국가를 찾습니다.
+1. 국가 리스트를 두개의 리스트로 나눕니다. 짝수라면 두개의 리스트의 크기가 갖게, 아니라면 앞의 리스트가 하나의 국가를 더 갖도록 합니다.
+1. ['China', 'Russia', 'USA', 'Finland', 'Sweden', 'Norway', 'Denmark']. 앞의 세개 국가와 나머지를 scandic countries로 unpack합니다.
+
+🎉 CONGRATULATIONS ! 🎉
+
+[<< Day 4](../04_Day_Strings/04_strings.md) | [Day 6 >>](../06_Day_Tuples/06_tuples.md)
diff --git a/Korean/07_sets_ko.md b/Korean/07_sets_ko.md
new file mode 100644
index 00000000..815f51e2
--- /dev/null
+++ b/Korean/07_sets_ko.md
@@ -0,0 +1,417 @@
+
30 Days Of Python: Day 7 - Sets
+
+Author: Asabeneh Yetayeh
Second Edition: July, 2021
+
+
+[<< Day 6](../06_Day_Tuples/06_tuples.md) | [Day 8 >>](../08_Day_Dictionaries/08_dictionaries.md)
+
+
+
+- [📘 Day 7](#-day-7)
+ - [Sets](#sets)
+ - [세트 만들기](#세트-만들기)
+ - [세트의 길이 구하기](#세트의-길이-구하기)
+ - [세트의 항목에 액세스](#세트의-항목에-엑세스)
+ - [항목 확인](#항목-확인)
+ - [세트에 항목 추가](#세트에-항목-추가)
+ - [세트에서 항목 제거](#세트에서-항목-제거)
+ - [세트의 항목 지우기](#세트의-항목-지우기)
+ - [세트 삭제](#세트-삭제)
+ - [목록을 집합으로 변환](#목록을-집합으로-변환)
+ - [집합 결합](#집합-결합)
+ - [교차 항목 찾기](#교차-항목-찾기)
+ - [하위 집합 및 수퍼 집합 확인](#하위-집합-및-수퍼-집합-확인)
+ - [두 세트 간의 차이 확인](#두-세트-간의-차이-확인)
+ - [두 집합 간의 대칭적 차이 찾기](#두-집합-간의-대칭적-차이-찾기)
+ - [집합 결합](#집합-결합)
+ - [💻 Exercises: Day 7](#-exercises-day-7)
+ - [Exercises: Level 1](#exercises-level-1)
+ - [Exercises: Level 2](#exercises-level-2)
+ - [Exercises: Level 3](#exercises-level-3)
+
+# 📘 Day 7
+
+## Sets
+
+세트는 항목의 모음입니다. 초등학교 또는 고등학교 수학 수업으로 돌아가겠습니다. 집합의 수학 정의는 Python에서도 적용될 수 있습니다. 집합은 순서가 지정되지 않고 인덱싱되지 않은 개별 요소의 모음입니다. Python에서 집합은 고유한 항목을 저장하는 데 사용되며 집합 간에 *합집합* , *교차* , *차이* , *대칭적 차이* , *하위 집합* , *상위 집합* 및 *분리 집합* 을 찾을 수 있습니다.
+
+### 세트 만들기
+
+중괄호 {}를 사용하여 세트 또는 *set()* 내장 함수를 생성합니다.
+
+- 빈 세트 만들기
+
+```py
+# syntax
+st = {}
+# or
+st = set()
+```
+
+- 초기 항목으로 세트 만들기
+
+```py
+# syntax
+st = {'item1', 'item2', 'item3', 'item4'}
+```
+
+**예시:**
+
+```py
+# syntax
+fruits = {'banana', 'orange', 'mango', 'lemon'}
+```
+
+### 세트의 길이 구하기
+
+**len()** 메서드를 사용하여 집합의 길이를 찾습니다.
+
+```py
+# syntax
+st = {'item1', 'item2', 'item3', 'item4'}
+len(set)
+```
+
+**예시:**
+
+```py
+fruits = {'banana', 'orange', 'mango', 'lemon'}
+len(fruits)
+```
+
+### 세트의 항목에 액세스
+
+루프를 사용하여 항목에 액세스합니다. 우리는 루프 섹션에서 이것을 볼 것입니다
+
+### 항목 확인
+
+목록에 항목이 있는지 확인하기 위해 멤버십 연산자 *에서* 사용합니다.
+
+```py
+# syntax
+st = {'item1', 'item2', 'item3', 'item4'}
+print("Does set st contain item3? ", 'item3' in st) # Does set st contain item3? True
+```
+
+**예시:**
+
+```py
+fruits = {'banana', 'orange', 'mango', 'lemon'}
+print('mango' in fruits ) # True
+```
+
+### 세트에 항목 추가
+
+세트가 생성되면 항목을 변경할 수 없으며 항목을 추가할 수도 있습니다.
+
+- *add()* 를 사용하여 하나의 항목 추가
+
+```py
+# syntax
+st = {'item1', 'item2', 'item3', 'item4'}
+st.add('item5')
+```
+
+**예시:**
+
+```py
+fruits = {'banana', 'orange', 'mango', 'lemon'}
+fruits.add('lime')
+```
+
+- *update()* 를 사용하여 여러 항목 추가 *update()* 를 사용하면 세트에 여러 항목을 추가할 수 있습니다. *update()* 는 목록 인수를 사용합니다.
+
+```py
+# syntax
+st = {'item1', 'item2', 'item3', 'item4'}
+st.update(['item5','item6','item7'])
+```
+
+**예시:**
+
+```py
+fruits = {'banana', 'orange', 'mango', 'lemon'}
+vegetables = ('tomato', 'potato', 'cabbage','onion', 'carrot')
+fruits.update(vegetables)
+```
+
+### 세트에서 항목 제거
+
+*remove()* 메서드를 사용하여 집합에서 항목을 제거할 수 있습니다. 항목을 찾을 수 없으면 *remove()* 메서드는 오류를 발생시키므로 해당 항목이 주어진 집합에 있는지 확인하는 것이 좋습니다. 그러나, *discard()* 메서드는 오류를 발생시키지 않습니다.
+
+```py
+# syntax
+st = {'item1', 'item2', 'item3', 'item4'}
+st.remove('item2')
+```
+
+pop() 메서드는 목록에서 임의의 항목을 제거하고 제거된 항목을 반환합니다.
+
+**예시:**
+
+```py
+fruits = {'banana', 'orange', 'mango', 'lemon'}
+fruits.pop() # removes a random item from the set
+
+```
+
+제거된 항목에 관심이 있는 경우.
+
+```py
+fruits = {'banana', 'orange', 'mango', 'lemon'}
+removed_item = fruits.pop()
+```
+
+### 세트의 항목 지우기
+
+세트를 지우거나 비우려면 *clear* 메소드를 사용합니다.
+
+```py
+# syntax
+st = {'item1', 'item2', 'item3', 'item4'}
+st.clear()
+```
+
+**예시:**
+
+```py
+fruits = {'banana', 'orange', 'mango', 'lemon'}
+fruits.clear()
+print(fruits) # set()
+```
+
+### 세트 삭제
+
+세트 자체를 삭제하려면 *del* 연산자를 사용합니다.
+
+```py
+# syntax
+st = {'item1', 'item2', 'item3', 'item4'}
+del st
+```
+
+**예시:**
+
+```py
+fruits = {'banana', 'orange', 'mango', 'lemon'}
+del fruits
+```
+
+### 목록을 집합으로 변환
+
+리스트를 세트로, 세트를 리스트로 변환할 수 있습니다. 목록을 세트로 변환하면 중복 항목이 제거되고 고유한 항목만 예약됩니다.
+
+```py
+# syntax
+lst = ['item1', 'item2', 'item3', 'item4', 'item1']
+st = set(lst) # {'item2', 'item4', 'item1', 'item3'} - the order is random, because sets in general are unordered
+```
+
+**예시:**
+
+```py
+fruits = ['banana', 'orange', 'mango', 'lemon','orange', 'banana']
+fruits = set(fruits) # {'mango', 'lemon', 'banana', 'orange'}
+```
+
+### 집합 결합
+
+*union()* 또는 *update()* 메서드를 사용하여 두 집합을 결합할 수 있습니다.
+
+- Union 이 메서드는 새 집합을 반환합니다.
+
+```py
+# syntax
+st1 = {'item1', 'item2', 'item3', 'item4'}
+st2 = {'item5', 'item6', 'item7', 'item8'}
+st3 = st1.union(st2)
+```
+
+**예시:**
+
+```py
+fruits = {'banana', 'orange', 'mango', 'lemon'}
+vegetables = {'tomato', 'potato', 'cabbage','onion', 'carrot'}
+print(fruits.union(vegetables)) # {'lemon', 'carrot', 'tomato', 'banana', 'mango', 'orange', 'cabbage', 'potato', 'onion'}
+```
+
+- 업데이트 이 메서드는 주어진 집합에 집합을 삽입합니다.
+
+```py
+# syntax
+st1 = {'item1', 'item2', 'item3', 'item4'}
+st2 = {'item5', 'item6', 'item7', 'item8'}
+st1.update(st2) # st2 contents are added to st1
+```
+
+**예시:**
+
+```py
+fruits = {'banana', 'orange', 'mango', 'lemon'}
+vegetables = {'tomato', 'potato', 'cabbage','onion', 'carrot'}
+fruits.update(vegetables)
+print(fruits) # {'lemon', 'carrot', 'tomato', 'banana', 'mango', 'orange', 'cabbage', 'potato', 'onion'}
+```
+
+### 교차 항목 찾기
+
+Intersection은 두 집합 모두에 있는 항목 집합을 반환합니다. 예를 참조하십시오
+
+```py
+# syntax
+st1 = {'item1', 'item2', 'item3', 'item4'}
+st2 = {'item3', 'item2'}
+st1.intersection(st2) # {'item3', 'item2'}
+```
+
+**예시:**
+
+```py
+whole_numbers = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
+even_numbers = {0, 2, 4, 6, 8, 10}
+whole_numbers.intersection(even_numbers) # {0, 2, 4, 6, 8, 10}
+
+python = {'p', 'y', 't', 'h', 'o','n'}
+dragon = {'d', 'r', 'a', 'g', 'o','n'}
+python.intersection(dragon) # {'o', 'n'}
+```
+
+### 하위 집합 및 수퍼 집합 확인
+
+집합은 다른 집합의 하위 집합 또는 상위 집합일 수 있습니다.
+
+- Subset: *issubset()*
+- Super set: *issuperset*
+
+```py
+# syntax
+st1 = {'item1', 'item2', 'item3', 'item4'}
+st2 = {'item2', 'item3'}
+st2.issubset(st1) # True
+st1.issuperset(st2) # True
+```
+
+**예시:**
+
+```py
+whole_numbers = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
+even_numbers = {0, 2, 4, 6, 8, 10}
+whole_numbers.issubset(even_numbers) # False, because it is a super set
+whole_numbers.issuperset(even_numbers) # True
+
+python = {'p', 'y', 't', 'h', 'o','n'}
+dragon = {'d', 'r', 'a', 'g', 'o','n'}
+python.issubset(dragon) # False
+```
+
+### 두 세트 간의 차이 확인
+
+두 집합 간의 차이를 반환합니다.
+
+```py
+# syntax
+st1 = {'item1', 'item2', 'item3', 'item4'}
+st2 = {'item2', 'item3'}
+st2.difference(st1) # set()
+st1.difference(st2) # {'item1', 'item4'} => st1\st2
+```
+
+**예시:**
+
+```py
+whole_numbers = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
+even_numbers = {0, 2, 4, 6, 8, 10}
+whole_numbers.difference(even_numbers) # {1, 3, 5, 7, 9}
+
+python = {'p', 'y', 't', 'o','n'}
+dragon = {'d', 'r', 'a', 'g', 'o','n'}
+python.difference(dragon) # {'p', 'y', 't'} - the result is unordered (characteristic of sets)
+dragon.difference(python) # {'d', 'r', 'a', 'g'}
+```
+
+### 두 집합 간의 대칭적 차이 찾기
+
+두 집합 간의 대칭 차이를 반환합니다. 수학적으로 두 세트에 있는 항목을 제외하고 두 세트의 모든 항목을 포함하는 세트를 리턴한다는 의미입니다. (A\B) ∪ (B\A)
+
+```py
+# syntax
+st1 = {'item1', 'item2', 'item3', 'item4'}
+st2 = {'item2', 'item3'}
+# it means (A\B)∪(B\A)
+st2.symmetric_difference(st1) # {'item1', 'item4'}
+```
+
+**예시:**
+
+```py
+whole_numbers = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
+some_numbers = {1, 2, 3, 4, 5}
+whole_numbers.symmetric_difference(some_numbers) # {0, 6, 7, 8, 9, 10}
+
+python = {'p', 'y', 't', 'h', 'o','n'}
+dragon = {'d', 'r', 'a', 'g', 'o','n'}
+python.symmetric_difference(dragon) # {'r', 't', 'p', 'y', 'g', 'a', 'd', 'h'}
+```
+
+### 집합 결합
+
+두 세트에 공통 항목이 없으면 분리 세트라고 합니다. *isdisjoint()* 메서드를 사용하여 두 집합이 결합인지 분리인지 확인할 수 있습니다.
+
+```py
+# syntax
+st1 = {'item1', 'item2', 'item3', 'item4'}
+st2 = {'item2', 'item3'}
+st2.isdisjoint(st1) # False
+```
+
+**예시:**
+
+```py
+even_numbers = {0, 2, 4 ,6, 8}
+even_numbers = {1, 3, 5, 7, 9}
+even_numbers.isdisjoint(odd_numbers) # True, because no common item
+
+python = {'p', 'y', 't', 'h', 'o','n'}
+dragon = {'d', 'r', 'a', 'g', 'o','n'}
+python.isdisjoint(dragon) # False, there are common items {'o', 'n'}
+```
+
+🌕 당신은 떠오르는 별입니다. 당신은 방금 7일차 챌린지를 완료했으며 위대함을 향한 당신의 길에 7걸음 앞서 있습니다. 이제 뇌와 근육을 위한 몇 가지 훈련을 하십시오.
+
+## 💻 Exercises: Day 7
+
+```py
+# sets
+it_companies = {'Facebook', 'Google', 'Microsoft', 'Apple', 'IBM', 'Oracle', 'Amazon'}
+A = {19, 22, 24, 20, 25, 26}
+B = {19, 22, 20, 25, 26, 24, 28, 27}
+age = [22, 19, 24, 25, 26, 24, 25, 24]
+```
+
+### Exercises: Level 1
+
+1. 집합 it_companies의 길이 찾기
+2. it_companies에 'Twitter' 추가
+3. it_companies 집합에 여러 IT 회사를 한 번에 삽입
+4. it_companies 집합에서 회사 중 하나를 제거합니다.
+5. 제거하다와 버리다의 차이점은 무엇인가요?
+
+### Exercises: Level 2
+
+1. A와 B를 결합
+2. 교차 항목 찾기
+3. A는 B의 부분집합
+4. A와 B는 서로소 집합입니다.
+5. A는 B와, B는 A와 조인
+6. A와 B의 대칭 차이는 무엇입니까
+7. 세트를 완전히 삭제
+
+### Exercises: Level 3
+
+1. 연령을 세트로 변환하고 목록의 길이와 세트의 길이를 비교합니다. 어느 것이 더 큽니까?
+2. 문자열, 목록, 튜플 및 집합과 같은 데이터 유형의 차이점을 설명하십시오.
+3. *저는 교사이고 사람들에게 영감을 주고 가르치는 것을 좋아합니다.* 문장에 사용된 독특한 단어는 몇 개입니까? 분할 방법을 사용하고 고유한 단어를 가져오도록 설정합니다.
+
+🎉 축하합니다! 🎉
+
+[<< 6일차](../06_Day_Tuples/06_tuples.md) | [8일차 >>](../08_Day_Dictionaries/08_dictionaries.md)
diff --git a/Korean/08_Day_Dictionaries/08_dictionaries.md b/Korean/08_Day_Dictionaries/08_dictionaries.md
new file mode 100644
index 00000000..a418cac2
--- /dev/null
+++ b/Korean/08_Day_Dictionaries/08_dictionaries.md
@@ -0,0 +1,342 @@
+
+
30 Days Of Python: Day 8 - Dictionaries
+
+
+
+
Author:
+Asabeneh Yetayeh
+ Second Edition: July, 2021
+
+
+
+
+[<< Day 7 ](../07_Day_Sets/07_sets.md) | [Day 9 >>](../09_Day_Conditionals/09_conditionals.md)
+
+
+
+- [📘 Day 8](#-day-8)
+ - [Dictionaries](#dictionaries)
+ - [Creating a Dictionary](#creating-a-dictionary)
+ - [Dictionary Length](#dictionary-length)
+ - [Accessing Dictionary Items](#accessing-dictionary-items)
+ - [Adding Items to a Dictionary](#adding-items-to-a-dictionary)
+ - [Modifying Items in a Dictionary](#modifying-items-in-a-dictionary)
+ - [Checking Keys in a Dictionary](#checking-keys-in-a-dictionary)
+ - [Removing Key and Value Pairs from a Dictionary](#removing-key-and-value-pairs-from-a-dictionary)
+ - [Changing Dictionary to a List of Items](#changing-dictionary-to-a-list-of-items)
+ - [Clearing a Dictionary](#clearing-a-dictionary)
+ - [Deleting a Dictionary](#deleting-a-dictionary)
+ - [Copy a Dictionary](#copy-a-dictionary)
+ - [Getting Dictionary Keys as a List](#getting-dictionary-keys-as-a-list)
+ - [Getting Dictionary Values as a List](#getting-dictionary-values-as-a-list)
+ - [💻 Exercises: Day 8](#-exercises-day-8)
+
+# 📘 Day 8
+
+## Dictionaries
+
+Dictionary는 순서가 없는 수정(변형) 가능한 쌍(키: 값)의 자료형의 컬렉션입니다.
+
+### Creating a Dictionary
+
+Dictionary를 만들려면 중괄호 {} 또는 *dict()* 내장 함수를 사용합니다.
+
+```py
+# syntax
+empty_dict = {}
+# Dictionary with data values
+dct = {'key1':'value1', 'key2':'value2', 'key3':'value3', 'key4':'value4'}
+```
+
+**Example:**
+
+```py
+person = {
+ 'first_name':'Asabeneh',
+ 'last_name':'Yetayeh',
+ 'age':250,
+ 'country':'Finland',
+ 'is_marred':True,
+ 'skills':['JavaScript', 'React', 'Node', 'MongoDB', 'Python'],
+ 'address':{
+ 'street':'Space street',
+ 'zipcode':'02210'
+ }
+ }
+```
+
+상단의 Dictionary는 값이 어떤 자료형일 수도 있다는 것을 보여줍니다:string, boolean, list, tuple, set 또는 dictionary.
+
+### Dictionary Length
+
+dictionary 내 'key: value' 쌍의 개수를 확인합니다.
+
+```py
+# syntax
+dct = {'key1':'value1', 'key2':'value2', 'key3':'value3', 'key4':'value4'}
+print(len(dct)) # 4
+```
+
+**Example:**
+
+```py
+person = {
+ 'first_name':'Asabeneh',
+ 'last_name':'Yetayeh',
+ 'age':250,
+ 'country':'Finland',
+ 'is_marred':True,
+ 'skills':['JavaScript', 'React', 'Node', 'MongoDB', 'Python'],
+ 'address':{
+ 'street':'Space street',
+ 'zipcode':'02210'
+ }
+ }
+print(len(person)) # 7
+
+```
+
+### Accessing Dictionary Items
+
+키의 이름을 통해 딕셔너리 아이템에 접근할 수 있습니다.
+
+```py
+# syntax
+dct = {'key1':'value1', 'key2':'value2', 'key3':'value3', 'key4':'value4'}
+print(dct['key1']) # value1
+print(dct['key4']) # value4
+```
+
+**Example:**
+
+```py
+person = {
+ 'first_name':'Asabeneh',
+ 'last_name':'Yetayeh',
+ 'age':250,
+ 'country':'Finland',
+ 'is_marred':True,
+ 'skills':['JavaScript', 'React', 'Node', 'MongoDB', 'Python'],
+ 'address':{
+ 'street':'Space street',
+ 'zipcode':'02210'
+ }
+ }
+print(person['first_name']) # Asabeneh
+print(person['country']) # Finland
+print(person['skills']) # ['JavaScript', 'React', 'Node', 'MongoDB', 'Python']
+print(person['skills'][0]) # JavaScript
+print(person['address']['street']) # Space street
+print(person['city']) # Error
+```
+
+존재하지 않는 키의 이름으로 아이템에 접근할 경우 에러가 발생할 수 있습니다. 이 에러를 피하기위해 우리는 우선 키가 존재하는지 확인해야합니다. 또는 _get_ 메서드를 사용할수 있습니다. get 메서드는 키가 존재하지 않을 경우, NoneType object 자료형인 None을 반환합니다.
+```py
+person = {
+ 'first_name':'Asabeneh',
+ 'last_name':'Yetayeh',
+ 'age':250,
+ 'country':'Finland',
+ 'is_marred':True,
+ 'skills':['JavaScript', 'React', 'Node', 'MongoDB', 'Python'],
+ 'address':{
+ 'street':'Space street',
+ 'zipcode':'02210'
+ }
+ }
+print(person.get('first_name')) # Asabeneh
+print(person.get('country')) # Finland
+print(person.get('skills')) #['HTML','CSS','JavaScript', 'React', 'Node', 'MongoDB', 'Python']
+print(person.get('city')) # None
+```
+
+### Adding Items to a Dictionary
+
+딕셔너리에 새로운 키와 값의 쌍을 추가할 수 있습니다.
+
+```py
+# syntax
+dct = {'key1':'value1', 'key2':'value2', 'key3':'value3', 'key4':'value4'}
+dct['key5'] = 'value5'
+```
+
+**Example:**
+
+```py
+person = {
+ 'first_name':'Asabeneh',
+ 'last_name':'Yetayeh',
+ 'age':250,
+ 'country':'Finland',
+ 'is_marred':True,
+ 'skills':['JavaScript', 'React', 'Node', 'MongoDB', 'Python'],
+ 'address':{
+ 'street':'Space street',
+ 'zipcode':'02210'
+ }
+}
+person['job_title'] = 'Instructor'
+person['skills'].append('HTML')
+print(person)
+```
+
+### Modifying Items in a Dictionary
+
+딕셔너리의 아이템을 수정할 수 있습니다
+
+```py
+# syntax
+dct = {'key1':'value1', 'key2':'value2', 'key3':'value3', 'key4':'value4'}
+dct['key1'] = 'value-one'
+```
+
+**Example:**
+
+```py
+person = {
+ 'first_name':'Asabeneh',
+ 'last_name':'Yetayeh',
+ 'age':250,
+ 'country':'Finland',
+ 'is_marred':True,
+ 'skills':['JavaScript', 'React', 'Node', 'MongoDB', 'Python'],
+ 'address':{
+ 'street':'Space street',
+ 'zipcode':'02210'
+ }
+ }
+person['first_name'] = 'Eyob'
+person['age'] = 252
+```
+
+### Checking Keys in a Dictionary
+
+딕셔너리에 키가 존재하는 지 확인하기 위해 _in_ 연산자를 사용합니다
+
+```py
+# syntax
+dct = {'key1':'value1', 'key2':'value2', 'key3':'value3', 'key4':'value4'}
+print('key2' in dct) # True
+print('key5' in dct) # False
+```
+
+### Removing Key and Value Pairs from a Dictionary
+
+- _pop(key)_: 특정 키 이름을 가진 아이템을 삭제합니다
+- _popitem()_: 마지막 아이템을 삭제합니다
+- _del_: 특정 키 이름을 가진 아이템을 삭제합니다
+
+```py
+# syntax
+dct = {'key1':'value1', 'key2':'value2', 'key3':'value3', 'key4':'value4'}
+dct.pop('key1') # removes key1 item
+dct = {'key1':'value1', 'key2':'value2', 'key3':'value3', 'key4':'value4'}
+dct.popitem() # removes the last item
+del dct['key2'] # removes key2 item
+```
+
+**Example:**
+
+```py
+person = {
+ 'first_name':'Asabeneh',
+ 'last_name':'Yetayeh',
+ 'age':250,
+ 'country':'Finland',
+ 'is_marred':True,
+ 'skills':['JavaScript', 'React', 'Node', 'MongoDB', 'Python'],
+ 'address':{
+ 'street':'Space street',
+ 'zipcode':'02210'
+ }
+ }
+person.pop('first_name') # Removes the firstname item
+person.popitem() # Removes the address item
+del person['is_married'] # Removes the is_married item
+```
+
+### Changing Dictionary to a List of Items
+
+_items()_ 메서드는 딕셔너리를 튜플의 리스트로 변환합니다.
+
+```py
+# syntax
+dct = {'key1':'value1', 'key2':'value2', 'key3':'value3', 'key4':'value4'}
+print(dct.items()) # dict_items([('key1', 'value1'), ('key2', 'value2'), ('key3', 'value3'), ('key4', 'value4')])
+```
+
+### Clearing a Dictionary
+
+딕셔너리 내의 아이템을 원하지 않는다면 _clear()_ 메서드를 사용해 비울 수 있습니다
+
+```py
+# syntax
+dct = {'key1':'value1', 'key2':'value2', 'key3':'value3', 'key4':'value4'}
+print(dct.clear()) # None
+```
+
+### Deleting a Dictionary
+
+딕셔너리를 사용하지않는다면 완전히 지울 수 있습니다
+
+```py
+# syntax
+dct = {'key1':'value1', 'key2':'value2', 'key3':'value3', 'key4':'value4'}
+del dct
+```
+
+### Copy a Dictionary
+
+_copy()_ 메서드를 통해 딕셔너리를 복사할 수 있습니다. copy를 사용해 원래 딕셔너리의 변화를 막을 수 있습니다.
+
+```py
+# syntax
+dct = {'key1':'value1', 'key2':'value2', 'key3':'value3', 'key4':'value4'}
+dct_copy = dct.copy() # {'key1':'value1', 'key2':'value2', 'key3':'value3', 'key4':'value4'}
+```
+
+### Getting Dictionary Keys as a List
+
+_keys()_ 메서드는 하나의 딕셔너리의 모든 키를 리스트로 줍니다.
+
+```py
+# syntax
+dct = {'key1':'value1', 'key2':'value2', 'key3':'value3', 'key4':'value4'}
+keys = dct.keys()
+print(keys) # dict_keys(['key1', 'key2', 'key3', 'key4'])
+```
+
+### Getting Dictionary Values as a List
+
+_values_ 메서드는 하나의 딕셔너리의 모든 값을 리스트로 줍니다.
+
+```py
+# syntax
+dct = {'key1':'value1', 'key2':'value2', 'key3':'value3', 'key4':'value4'}
+values = dct.values()
+print(values) # dict_values(['value1', 'value2', 'value3', 'value4'])
+```
+
+🌕 당신은 정말 놀라워요. 이제, 여러분은 사전의 힘으로 완전히 충전되어 있습니다. 여러분은 이제 막 8일째의 도전을 마쳤고 위대함을 향해 8보 전진했습니다. 이제 여러분의 뇌와 근육을 위한 운동을 하세요.
+
+## 💻 Exercises: Day 8
+
+1. dog라는 이름의 빈 딕셔너리를 생성합니다
+2. dog 딕셔너리에 name, color, breed, legs, age 를 추가합니다
+3. student 딕셔너리를 생성하고 first_name, last_name, gender, age, marital status, skills, country, city 와 address 를 키로 추가합니다
+4. student 딕셔너리의 길이를 얻습니다
+5. skills 의 값을 얻고 자료형을 확인합니다, list 여야 합니다
+6. 한개나 두개를 추가해 skills의 값을 수정합니다
+7. 딕셔너리의 키를 리스트로 얻습니다
+8. 딕셔너리의 값을 리스트로 얻습니다
+9. _items()_ 메서드를 이용해 튜플의 리스트로 딕셔너리를 바꿉니다
+10. 딕셔너리의 아이템중 하나를 삭제합니다
+11. 딕셔너리 중 하나를 삭제합니다
+
+🎉 CONGRATULATIONS ! 🎉
+
+[<< Day 7 ](../07_Day_Sets/07_sets.md) | [Day 9 >>](../09_Day_Conditionals/09_conditionals.md)
diff --git a/Korean/10_loops_ko.md b/Korean/10_loops_ko.md
new file mode 100644
index 00000000..0b6f58d9
--- /dev/null
+++ b/Korean/10_loops_ko.md
@@ -0,0 +1,448 @@
+
30 Days Of Python: Day 10 - Loops
+
+Author: Asabeneh Yetayeh
Second Edition: July, 2021
+
+
+[<< Day 9](../09_Day_Conditionals/09_conditionals.md) | [Day 11 >>](../11_Day_Functions/11_functions.md)
+
+
+
+- [📘 Day 10](#-day-10)
+ - [Loops](#loops)
+ - [While 루프](#while-루프)
+ - [Break 과 Continue - Part 1](#break-과-continue---part-1)
+ - [For 루프](#for-루프)
+ - [Break 과 Continue - Part 2](#break-과-continue---part-2)
+ - [범위 기능](#범위-기능)
+ - [중첩 For 루프](#중첩-for-루프)
+ - [For Else](#for-else)
+ - [Pass](#pass)
+ - [💻 Exercises: Day 10](#-exercises-day-10)
+ - [Exercises: Level 1](#exercises-level-1)
+ - [Exercises: Level 2](#exercises-level-2)
+ - [Exercises: Level 3](#exercises-level-3)
+
+# 📘 Day 10
+
+## Loops
+
+인생은 일상으로 가득 차 있습니다. 프로그래밍에서 우리는 또한 많은 반복 작업을 수행합니다. 반복 작업을 처리하기 위해 프로그래밍 언어는 루프를 사용합니다. Python 프로그래밍 언어는 또한 다음 유형의 두 루프를 제공합니다.
+
+1. while loop
+2. for loop
+
+### While 루프
+
+우리는 while 루프를 만들기 위해 예약어 *while* 을 사용합니다. 주어진 조건이 만족될 때까지 문 블록을 반복적으로 실행하는 데 사용됩니다. 조건이 거짓이 되면 루프 뒤의 코드 행이 계속 실행됩니다.
+
+```py
+ # syntax
+while condition:
+ code goes here
+```
+
+**예시:**
+
+```py
+count = 0
+while count < 5:
+ print(count)
+ count = count + 1
+#prints from 0 to 4
+```
+
+위의 while 루프에서 count가 5일 때 조건이 false가 됩니다. 이때 루프가 중지됩니다. 조건이 더 이상 참이 아닐 때 코드 블록을 실행하고 싶다면 *else* 를 사용할 수 있습니다.
+
+```py
+ # syntax
+while condition:
+ code goes here
+else:
+ code goes here
+```
+
+**예시:**
+
+```py
+count = 0
+while count < 5:
+ print(count)
+ count = count + 1
+#prints from 0 to 4
+```
+
+위의 루프 조건은 count가 5이고 루프가 중지되고 실행이 else 문을 시작하면 거짓이 됩니다. 결과적으로 5가 인쇄됩니다.
+
+### Break 과 Continue - Part 1
+
+- 중단: 루프에서 벗어나거나 중단하고 싶을 때 중단을 사용합니다.
+
+```py
+# syntax
+while condition:
+ code goes here
+ if another_condition:
+ break
+```
+
+**예시:**
+
+```py
+count = 0
+while count < 5:
+ print(count)
+ count = count + 1
+ if count == 3:
+ break
+```
+
+위의 while 루프는 0, 1, 2만 인쇄하지만 3에 도달하면 중지합니다.
+
+- 계속: continue 문을 사용하면 현재 반복을 건너뛰고 다음을 계속할 수 있습니다.
+
+```py
+ # syntax
+while condition:
+ code goes here
+ if another_condition:
+ continue
+```
+
+**예시:**
+
+```py
+count = 0
+while count < 5:
+ if count == 3:
+ continue
+ print(count)
+ count = count + 1
+```
+
+위의 while 루프는 0, 1, 2 및 4만 인쇄합니다(3을 건너뜁니다).
+
+### For 루프
+
+*for* 키워드는 다른 프로그래밍 언어와 유사하지만 구문이 약간 다른 for 루프를 만드는 데 사용됩니다. 루프는 시퀀스(즉, 목록, 튜플, 사전, 집합 또는 문자열)를 반복하는 데 사용됩니다.
+
+- For loop with list
+
+```py
+# syntax
+for iterator in lst:
+ code goes here
+```
+
+**예시:**
+
+```py
+numbers = [0, 1, 2, 3, 4, 5]
+for number in numbers: # number is temporary name to refer to the list's items, valid only inside this loop
+ print(number) # the numbers will be printed line by line, from 0 to 5
+```
+
+- For loop with string
+
+```py
+# syntax
+for iterator in string:
+ code goes here
+```
+
+**예시:**
+
+```py
+language = 'Python'
+for letter in language:
+ print(letter)
+
+
+for i in range(len(language)):
+ print(language[i])
+```
+
+- For loop with tuple
+
+```py
+# syntax
+for iterator in tpl:
+ code goes here
+```
+
+**예시:**
+
+```py
+numbers = (0, 1, 2, 3, 4, 5)
+for number in numbers:
+ print(number)
+```
+
+- 사전을 사용한 For 루프 사전을 통한 루프는 사전의 키를 제공합니다.
+
+```py
+ # syntax
+for iterator in dct:
+ code goes here
+```
+
+**예시:**
+
+```py
+person = {
+ 'first_name':'Asabeneh',
+ 'last_name':'Yetayeh',
+ 'age':250,
+ 'country':'Finland',
+ 'is_marred':True,
+ 'skills':['JavaScript', 'React', 'Node', 'MongoDB', 'Python'],
+ 'address':{
+ 'street':'Space street',
+ 'zipcode':'02210'
+ }
+}
+for key in person:
+ print(key)
+
+for key, value in person.items():
+ print(key, value) # this way we get both keys and values printed out
+```
+
+- Loops in set
+
+```py
+# syntax
+for iterator in st:
+ code goes here
+```
+
+**예시:**
+
+```py
+it_companies = {'Facebook', 'Google', 'Microsoft', 'Apple', 'IBM', 'Oracle', 'Amazon'}
+for company in it_companies:
+ print(company)
+```
+
+### Break 과 Continue - Part 2
+
+짧은 알림: *중단* : 루프가 완료되기 전에 중단하고 싶을 때 중단을 사용합니다.
+
+```py
+# syntax
+for iterator in sequence:
+ code goes here
+ if condition:
+ break
+```
+
+**예시:**
+
+```py
+numbers = (0,1,2,3,4,5)
+for number in numbers:
+ print(number)
+ if number == 3:
+ break
+```
+
+위의 예에서 루프는 3에 도달하면 중지됩니다.
+
+계속: 루프 반복에서 일부 단계를 건너뛰고 싶을 때 계속을 사용합니다.
+
+```py
+ # syntax
+for iterator in sequence:
+ code goes here
+ if condition:
+ continue
+```
+
+**예시:**
+
+```py
+numbers = (0,1,2,3,4,5)
+for number in numbers:
+ print(number)
+ if number == 3:
+ continue
+ print('Next number should be ', number + 1) if number != 5 else print("loop's end") # for short hand conditions need both if and else statements
+print('outside the loop')
+```
+
+위의 예에서 숫자가 3이면 조건 *다음* 단계(루프 내부)를 건너뛰고 반복이 남아 있으면 루프 실행이 계속됩니다.
+
+### 범위 기능
+
+*range()* 함수는 숫자 목록에 사용됩니다. *범위(시작, 끝, 단계)* 는 시작, 종료 및 증분의 세 가지 매개변수를 사용합니다. 기본적으로 0부터 시작하고 증분은 1입니다. 범위 시퀀스에는 최소 1개의 인수(종료)가 필요합니다. 범위를 사용하여 시퀀스 만들기
+
+```py
+lst = list(range(11))
+print(lst) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
+st = set(range(1, 11)) # 2 arguments indicate start and end of the sequence, step set to default 1
+print(st) # {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
+
+lst = list(range(0,11,2))
+print(lst) # [0, 2, 4, 6, 8, 10]
+st = set(range(0,11,2))
+print(st) # {0, 2, 4, 6, 8, 10}
+```
+
+```py
+# syntax
+for iterator in range(start, end, step):
+```
+
+**예시:**
+
+```py
+for number in range(11):
+ print(number) # prints 0 to 10, not including 11
+```
+
+### 중첩 For 루프
+
+루프 안에 루프를 작성할 수 있습니다.
+
+```py
+# syntax
+for x in y:
+ for t in x:
+ print(t)
+```
+
+**예시:**
+
+```py
+person = {
+ 'first_name': 'Asabeneh',
+ 'last_name': 'Yetayeh',
+ 'age': 250,
+ 'country': 'Finland',
+ 'is_marred': True,
+ 'skills': ['JavaScript', 'React', 'Node', 'MongoDB', 'Python'],
+ 'address': {
+ 'street': 'Space street',
+ 'zipcode': '02210'
+ }
+}
+for key in person:
+ if key == 'skills':
+ for skill in person['skills']:
+ print(skill)
+```
+
+### For Else
+
+루프가 끝날 때 메시지를 실행하려면 else를 사용합니다.
+
+```py
+# syntax
+for iterator in range(start, end, step):
+ do something
+else:
+ print('The loop ended')
+```
+
+**예시:**
+
+```py
+for number in range(11):
+ print(number) # prints 0 to 10, not including 11
+else:
+ print('The loop stops at', number)
+```
+
+### Pass
+
+Python에서 when 문이 필요하지만(세미콜론 뒤에) 코드를 실행하는 것을 좋아하지 않으므로 오류를 피하기 위해 *pass* 라는 단어를 쓸 수 있습니다. 또한 향후 진술을 위해 자리 표시자로 사용할 수 있습니다.
+
+**예시:**
+
+```py
+for number in range(6):
+ pass
+```
+
+🌕 당신은 큰 이정표를 세웠고, 당신은 멈출 수 없습니다. 계속하세요! 10일차 챌린지를 방금 완료했으며 위대함을 향한 10단계를 앞두고 있습니다. 이제 뇌와 근육을 위한 몇 가지 운동을 하십시오.
+
+## 💻 Exercises: Day 10
+
+### Exercises: Level 1
+
+1. for 루프를 사용하여 0에서 10까지 반복하고 while 루프를 사용하여 동일한 작업을 수행합니다.
+
+2. for 루프를 사용하여 10에서 0까지 반복하고 while 루프를 사용하여 동일한 작업을 수행합니다.
+
+3. print()를 7번 호출하는 루프를 작성하여 다음 삼각형을 출력합니다.
+
+ ```py
+ #
+ ##
+ ###
+ ####
+ #####
+ ######
+ #######
+ ```
+
+4. 중첩 루프를 사용하여 다음을 만듭니다.
+
+ ```sh
+ # # # # # # # #
+ # # # # # # # #
+ # # # # # # # #
+ # # # # # # # #
+ # # # # # # # #
+ # # # # # # # #
+ # # # # # # # #
+ # # # # # # # #
+ ```
+
+5. 다음 패턴을 인쇄합니다.
+
+ ```sh
+ 0 x 0 = 0
+ 1 x 1 = 1
+ 2 x 2 = 4
+ 3 x 3 = 9
+ 4 x 4 = 16
+ 5 x 5 = 25
+ 6 x 6 = 36
+ 7 x 7 = 49
+ 8 x 8 = 64
+ 9 x 9 = 81
+ 10 x 10 = 100
+ ```
+
+6. for 루프를 사용하여 ['Python', 'Numpy','Pandas','Django', 'Flask'] 목록을 반복하고 항목을 출력합니다.
+
+7. for 루프를 사용하여 0에서 100까지 반복하고 짝수만 출력
+
+8. for 루프를 사용하여 0에서 100까지 반복하고 홀수만 출력
+
+### Exercises: Level 2
+
+1. for 루프를 사용하여 0에서 100까지 반복하고 모든 숫자의 합계를 인쇄합니다.
+
+```sh
+The sum of all numbers is 5050.
+```
+
+1. for 루프를 사용하여 0에서 100까지 반복하고 모든 짝수의 합과 모든 승산의 합을 인쇄합니다.
+
+ ```sh
+ The sum of all evens is 2550. And the sum of all odds is 2500.
+ ```
+
+### Exercises: Level 3
+
+1. 데이터 폴더로 이동하여 [countries.py](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/data/countries.py) 파일을 사용합니다. 국가를 순환하고 단어 *land* 를 포함하는 모든 국가를 추출합니다.
+2. 이것은 과일 목록입니다. ['banana', 'orange', 'mango', 'lemon'] 루프를 사용하여 순서를 뒤집습니다.
+3. 데이터 폴더로 이동하여 [countries_data.py](https://github.com/Asabeneh/30-Days-Of-Python/blob/master/data/countries-data.py) 파일을 사용합니다.
+ 1. 데이터의 총 언어 수는 얼마입니까?
+ 2. 데이터에서 가장 많이 사용되는 10개 언어 찾기
+ 3. 세계에서 인구가 가장 많은 10개 국가 찾기
+
+🎉 축하합니다! 🎉
+
+[<< Day 9](../09_Day_Conditionals/09_conditionals.md) | [Day 11 >>](../11_Day_Functions/11_functions.md)
diff --git a/Korean/readme_ko.md b/Korean/readme_ko.md
new file mode 100644
index 00000000..bc628609
--- /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
diff --git a/korean/03_Day_Operators/03_operators.md b/korean/03_Day_Operators/03_operators.md
new file mode 100644
index 00000000..1cfff93d
--- /dev/null
+++ b/korean/03_Day_Operators/03_operators.md
@@ -0,0 +1,317 @@
+
+
30 Days Of Python: Day 3 - Operators
+
+
+
+
Author:
+Asabeneh Yetayeh
+ Second Edition: July, 2021
+
+
+
+[<< Day 2](../02_Day_Variables_builtin_functions/02_variables_builtin_functions.md) | [Day 4 >>](../04_Day_Strings/04_strings.md)
+
+
+
+- [📘 3일차](#-3일차)
+ - [불리언](#불리언)
+ - [연산자](#연산자)
+ - [대입 연산자](#대입-연산자)
+ - [산술 연산자:](#산술-연산자)
+ - [비교 연산자](#비교-연산자)
+ - [논리 연산자](#논리-연산자)
+ - [💻 3일차: 실습](#-3일차-실습)
+
+# 📘 3일차
+
+## 불리언
+
+불리언 데이터 타입은 True 또는 False 두 값 중 하나를 나타냅니다. 비교 연산자를 사용하면 이 데이터 타입의 사용이 명확해질 것입니다. 첫 번째 문자 **T** 는 참, **F** 는 거짓으로 표현되는 자바 스크립트와 달리 대문자여야 합니다.
+**예시: 불리언 값**
+
+```py
+print(True)
+print(False)
+```
+
+## 연산자
+
+파이썬은 몇 가지 타입의 연산자를 지원합니다. 이 섹션에서 이것에 대해 알아볼 것입니다.
+
+### 대입 연산자
+
+대입 연산자는 변수에 값을 대입할 때 사용됩니다. = 로 예시를 들어보겠습니다. 수학에서 등호란 두 값이 동일하다는 것을 의미하지만, 파이썬에서는 특정 변수가 값을 가지고 있으며, 이 변수에 값을 대입한다고 합니다. 아래 표는 [w3school](https://www.w3schools.com/python/python_operators.asp)에서 가져온 다양한 유형의 파이썬 할당 연산자를 보여줍니다.
+
+
+
+### 산술 연산자:
+
+- 더하기(+): a + b
+- 빼기(-): a - b
+- 곱하기(*): a * b
+- 나누기(/): a / b
+- 나머지 연산(%): a % b
+- 버림 나눗셈(//): a // b
+- 지수(**): a ** b
+
+
+
+**예시: Integers**
+
+```py
+# Arithmetic Operations in Python
+# Integers
+
+print('Addition: ', 1 + 2) # 3
+print('Subtraction: ', 2 - 1) # 1
+print('Multiplication: ', 2 * 3) # 6
+print ('Division: ', 4 / 2) # 2.0 파이썬의 나누기는 부동 소수를 제공합니다.
+print('Division: ', 6 / 2) # 3.0
+print('Division: ', 7 / 2) # 3.5
+print('Division without the remainder: ', 7 // 2) # 3, 부동 소수 또는 나머지가 없는 값을 제공합니다.
+print ('Division without the remainder: ',7 // 3) # 2
+print('Modulus: ', 3 % 2) # 1, 나머지를 제공합니다.
+print('Exponentiation: ', 2 ** 3) # 9 2 * 2 * 2 를 의미합니다.
+```
+
+**예시: Floats**
+
+```py
+# Floating numbers
+print('Floating Point Number, PI', 3.14)
+print('Floating Point Number, gravity', 9.81)
+```
+
+**예시: 복소수**
+
+```py
+# Complex numbers
+print('Complex number: ', 1 + 1j)
+print('Multiplying complex numbers: ',(1 + 1j) * (1 - 1j))
+```
+
+변수를 선언하고 숫자 데이터 유형을 지정합니다. 여기서는 단일 문자 변수를 사용할 것이지만, 이런 유형의 변수를 선언하는 습관은 좋지 않다는 것을 기억하셔야 합니다. 변수 이름은 항상 기억해야 합니다.
+
+**Example:**
+
+```python
+# 첫 번째로 변수를 먼저 선언합니다.
+
+a = 3 # a는 변수의 이름이며 정수 데이터 타입입니다.
+b = 2 # b는 변수의 이름이며 정수 데이터 타입입니다.
+
+# 산술 연산 및 결과를 변수에 대입합니다.
+total = a + b
+diff = a - b
+product = a * b
+division = a / b
+remainder = a % b
+floor_division = a // b
+exponential = a ** b
+
+# sum 대신 total을 사용했어야 하지만 sum은 내장 함수입니다. 내장 함수를 재정의하지 않도록 하십시오.
+print(total) # 만약 몇몇 출력에 문자열로 표시를 하지 않는다면, 어디서 결과가 오는지 알지 못할 것입니다.
+print('a + b = ', total)
+print('a - b = ', diff)
+print('a * b = ', product)
+print('a / b = ', division)
+print('a % b = ', remainder)
+print('a // b = ', floor_division)
+print('a ** b = ', exponentiation)
+```
+
+**Example:**
+
+```py
+print('== Addition, Subtraction, Multiplication, Division, Modulus ==')
+
+# 값을 선언하고 함께 정리
+num_one = 3
+num_two = 4
+
+# 산술 연산
+total = num_one + num_two
+diff = num_two - num_one
+product = num_one * num_two
+div = num_two / num_one
+remainder = num_two % num_one
+
+# 레이블로 값 출력
+print('total: ', total)
+print('difference: ', diff)
+print('product: ', product)
+print('division: ', div)
+print('remainder: ', remainder)
+```
+
+이제 점 연결을 시작하고 이미 알고 있는 계산 방법(면적, 부피, 밀도, 무게, 둘레, 거리, 힘)을 사용해 보겠습니다.
+
+**Example:**
+
+```py
+# 원의 넓이 계산
+radius = 10 # 원의 반지름
+area_of_circle = 3.14 * radius ** 2 # 두 개의 * 기호는 지수를 의미합니다
+print('Area of a circle:', area_of_circle)
+
+# 직사각형의 넓이 계산
+length = 10
+width = 20
+area_of_rectangle = length * width
+print('Area of rectangle:', area_of_rectangle)
+
+# 개체의 무게 계산
+mass = 75
+gravity = 9.81
+weight = mass * gravity
+print(weight, 'N') # 무게에 단위 추가
+
+# 액체의 밀도 계산
+mass = 75 # in Kg
+volume = 0.075 # in cubic meter
+density = mass / volume # 1000 Kg/m^3
+
+```
+
+### 비교 연산자
+
+프로그래밍에서 우리는 비교 연산자를 사용하여 두 값을 비교합니다. 우리는 값이 다른 값보다 크거나 작거나 같은지 확인합니다. 다음 표는[w3shool](https://www.w3schools.com/python/python_operators.asp)에서 가져온 파이썬의 비교 연산자를 보여줍니다.
+
+
+**Example: 비교 연산자**
+
+```py
+print(3 > 2) # 참, 3이 2보다 크기 때문에
+print(3 >= 2) # 참, 3이 2보다 크기 때문에
+print(3 < 2) # 거짓, 3이 더 크기 때문에
+print(2 < 3) # 참, 2가 3보다 작기 때문에
+print(2 <= 3) # 참, 2가 3보다 작기 때문에
+print(3 == 2) # 거짓, 3과 2는 같지 않기 때문에
+print(3 != 2) # 참, 3은 2와 다르기 때문에
+print(len('mango') == len('avocado')) # 거짓
+print(len('mango') != len('avocado')) # 참
+print(len('mango') < len('avocado')) # 참
+print(len('milk') != len('meat')) # 거짓
+print(len('milk') == len('meat')) # 참
+print(len('tomato') == len('potato')) # 참
+print(len('python') > len('dragon')) # 거짓
+
+
+# 무언가를 비교하면 참 또는 거짓이 됩니다.
+
+print('True == True: ', True == True)
+print('True == False: ', True == False)
+print('False == False:', False == False)
+```
+
+위의 비교 연산자 외에 파이썬은 다음과 같은 연산자를 사용합니다:
+
+- _is_: 두 변수가 동일할 경우 참을 반환합니다.(x is y)
+- _is not_: 두 변수가 동일하지 않을 경우 참을 반환합니다.(x is not y)
+- _in_: 제시된 목록에 특정 항목이 포함된 경우 참을 반환합니다.(x in y)
+- _not in_: 제시된 목록에 특정 항목이 없으면 참을 반환합니다.(x in y)
+
+```py
+print('1 is 1', 1 is 1) # 참 - 데이터 값이 동일하기 때문에
+print('1 is not 2', 1 is not 2) # 참 - 1과 2는 다르기 때문에
+print('A in Asabeneh', 'A' in 'Asabeneh') # 참 - 문자열에서 A를 찾을 수 있습니다
+print('B in Asabeneh', 'B' in 'Asabeneh') # 거짓 - 대문자 B가 없습니다
+print('coding' in 'coding for all') # 참 - coding이라는 단어를 coding for all이 가지고 있기 때문에
+print('a in an:', 'a' in 'an') # 참
+print('4 is 2 ** 2:', 4 is 2 ** 2) # 참
+```
+
+### 논리 연산자
+
+다른 프로그래밍 언어와 달리 파이썬은 논리 연산자를 위해 _and_, _or_, _not_ 키워드를 사용합니다. 논리 연산자는 다음과 같은 조건문을 결합하는 데 사용됩니다.
+
+
+
+```py
+print(3 > 2 and 4 > 3) # 참 - 두 개의 문장이 참이기 때문에
+print(3 > 2 and 4 < 3) # 거짓 - 두 번째 문장이 거짓이기 때문에
+print(3 < 2 and 4 < 3) # 거짓 - 두 가지 문장 모두 거짓이기 때문에
+print('True and True: ', True and True)
+print(3 > 2 or 4 > 3) # 참 - 두 가지 문장 모두 참이기 때문에
+print(3 > 2 or 4 < 3) # 참 - 두 가지 중 하나의 문장이 참이기 때문에
+print(3 < 2 or 4 < 3) # 거짓 - 두 가지 문장 모두 거짓이기 때문에
+print('True or False:', True or False)
+print(not 3 > 2) # 거짓 - 3이 2보다 큰 것은 참이기 때문에, 참이 아닐 경우 거짓을 줍니다.
+print(not True) # 거짓 - 부정으로 참에서 거짓으로 바뀝니다.
+print(not False) # True
+print(not not True) # True
+print(not not False) # False
+
+```
+
+🌕 당신은 무한한 에너지를 가지고 있어요. 여러분은 이제 막 3일차 도전을 마쳤고 위대함으로 가는 길에 세 걸음 앞서 있습니다. 이제 여러분의 뇌와 근육을 위한 운동을 하세요.
+
+## 💻 3일차 실습
+
+1. 나이를 정수 변수로 선언합니다.
+2. 자신의 키를 플로트 변수로 선언합니다.
+3. 복소수를 저장하는 변수 선언합니다.
+4. 삼각형의 밑면과 높이를 입력하도록 사용자에게 지시하는 스크립트를 작성하고 이 삼각형의 면적(면적 = 0.5 x b x h)을 계산합니다.
+
+```py
+ Enter base: 20
+ Enter height: 10
+ The area of the triangle is 100
+```
+
+5. 삼각형의 측면 a, 측면 b, 측면 c를 입력하라는 메시지를 표시하는 스크립트를 작성합니다. 삼각형의 둘레(지름 = a + b + c)를 계산합니다.
+
+```py
+Enter side a: 5
+Enter side b: 4
+Enter side c: 3
+The perimeter of the triangle is 12
+```
+
+6. 프롬프트를 사용하여 직사각형의 길이와 너비를 가져옵니다. 면적(면적 = 길이 x 폭) 및 둘레(면적 = 2 x (길이 + 폭)) 계산합니다.
+7. 프롬프트를 사용하여 원의 반지름을 구합니다. 면적(면적 = 픽스 r x r)과 원주(c = 2 x 픽스 r)를 계산합니다. 여기서 pi = 3.14입니다.
+8. y = 2x-2의 기울기, x-제곱 및 y-제곱을 계산합니다.
+9. 기울기는 (m = y2-y1/x2-x1)입니다. 기울기와 [유클리드 거리](https://en.wikipedia.org/wiki/Euclidean_distance#:~:text=In%20mathematics%2C%20the%20Euclidean%20distance,being%20called%20the%20Pythagorean%20distance.) 점(2,2)과 점(6,10) 사이를 구합니다.
+10. 과제 8과 9의 기울기를 비교합니다.
+11. y 값(y = x^2 + 6x + 9)을 계산합니다. 다른 x 값을 사용하고 y 값이 0이 되는 x 값을 계산해 보십시오.
+12. 'python'과 'dragon'의 길이를 찾아 거짓 비교를 합니다.
+13. _and_ 연산자를 사용하여 'python'과 'dragon' 모두에 'on'이 있는지 확인합니다.
+14. _나는 이 강좌가 전문용어로 가득하지 않기를 바랍니다. _in_ 연산자를 사용하여 _jargon_ 이 문장에 있는지 확인합니다.
+15. dragon과 python 모두 'On'이 없습니다.
+16. _python_ 텍스트의 길이를 찾아서 값을 float로 변환하고 문자열로 변환합니다.
+17. 짝수는 2로 나누고 나머지는 0입니다. 파이썬을 사용하여 숫자가 짝수인지 아닌지 어떻게 확인하겠습니까?
+18. 7 x 3의 나눗셈 버림이 2.7의 int 변환값과 동일한지 확인합니다.
+19. '10'의 유형이 10의 유형과 동일한지 확인합니다.
+20. if int('9.8')이 10과 같은지 확인합니다.
+21. 사용자에게 시간 및 시간당 요금을 입력하도록 요청하는 스크립트를 작성합니다. 그 사람의 급여를 계산합니까?
+
+```py
+Enter hours: 40
+Enter rate per hour: 28
+Your weekly earning is 1120
+```
+
+22. 사용자에게 년 수를 입력하도록 요청하는 스크립트를 작성합니다. 사람이 살 수 있는 시간을 초 단위로 계산합니다. 사람이 100년을 살 수 있다고 가정합시다.
+
+```py
+Enter number of years you have lived: 100
+You have lived for 3153600000 seconds.
+```
+
+23. 다음을 표시하는 파이썬 스크립트를 작성합니다.
+
+```py
+1 1 1 1 1
+2 1 2 4 8
+3 1 3 9 27
+4 1 4 16 64
+5 1 5 25 125
+```
+
+🎉 축하합니다 ! 🎉
+
+[<< Day 2](../02_Day_Variables_builtin_functions/02_variables_builtin_functions.md) | [Day 4 >>](../04_Day_Strings/04_strings.md)
diff --git a/korean/readme.md b/korean/readme.md
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/korean/readme.md
@@ -0,0 +1 @@
+