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

Twitter Follow +
+

Author: Asabeneh Yetayeh
Second Edition: July, 2021

+
+ +[<< Day 3](../03_Day_Operators/03_operators.md) | [Day 5 >>](../05_Day_Lists/05_lists.md) + +![30DaysOfPython](../images/30DaysOfPython_banner3@2x.png) + +- [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을 뺀 값입니다. + +![String index](../images/string_index.png) + +```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/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

Twitter Follow +
+

Author: Asabeneh Yetayeh
Second Edition: July, 2021

+
+ +[<< Day 6](../06_Day_Tuples/06_tuples.md) | [Day 8 >>](../08_Day_Dictionaries/08_dictionaries.md) + +![30DaysOfPython](../images/30DaysOfPython_banner3@2x.png) + +- [📘 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/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

Twitter Follow +
+

Author: Asabeneh Yetayeh
Second Edition: July, 2021

+
+ +[<< Day 9](../09_Day_Conditionals/09_conditionals.md) | [Day 11 >>](../11_Day_Functions/11_functions.md) + +![30DaysOfPython](../images/30DaysOfPython_banner3@2x.png) + +- [📘 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
+Paypal Logo +
+ +
+

30 Days Of Python: Day 1 - Introduction

+ + + + + Twitter Follow + + + Author: + Asabeneh Yetayeh
+ Second Edition: July, 2021 +
+
+ + +[Day 2 >>](../02_Day_Variables_builtin_functions/02_variables_builtin_functions.md) + +![30DaysOfPython](../images/30DaysOfPython_banner3@2x.png) + +- [🐍 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 사용자인 경우. 빨간색 동그라미 친 버튼을 클릭합니다. + +[![Windows에서 설치](../images/installing_on_windows.png)](https://www.python.org/) + +Python이 설치되어 있는지 확인하려면 장치 터미널에 다음 명령을 작성하십시오. + +```shell +python --version +``` + +![Python Version](../images/python_versio.png) + +터미널에서 보시다시피 저는 현재 _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 Scripting Shell](../images/opening_python_shell.png) + +Python 대화형 셸이 열리고 Python 코드(Python 스크립트)를 작성하기를 기다립니다. 기호 >>> 옆에 Python 스크립트를 작성하고 Enter를 누릅니다. +Python 스크립팅 셸에서 첫 번째 스크립트를 작성해 보겠습니다. + +![Python script on Python shell](../images/adding_on_python_shell.png) + +훌륭합니다. Python 대화형 셸에서 첫 번째 Python 스크립트를 작성했습니다. Python 대화형 셸을 어떻게 닫습니까? +셸을 닫으려면 기호 옆에 >> **exit()** 명령을 작성하고 Enter 키를 누릅니다. + +![Exit from python shell](../images/exit_from_shell.png) + +이제 Python 대화형 셸을 여는 방법과 종료하는 방법을 알았습니다. + +Python은 Python이 이해하는 스크립트를 작성하면 결과를 제공하고 그렇지 않으면 오류를 반환합니다. 고의적인 실수를 하고 Python이 무엇을 반환하는지 봅시다. + +![Invalid Syntax Error](../images/invalid_syntax_error.png) + +반환된 오류에서 볼 수 있듯이 Python은 우리가 저지른 실수와 _Syntax Error: invalid syntax_를 알고 있을 정도로 영리합니다. Python에서 x를 곱셈으로 사용하는 것은 (x)가 Python에서 유효한 구문이 아니기 때문에 구문 오류입니다. (**x**) 대신 곱셈에 별표(*)를 사용합니다. 반환된 오류는 수정해야 할 사항을 명확하게 보여줍니다. + +프로그램에서 오류를 식별하고 제거하는 프로세스를 *디버깅*이라고 합니다. **x** 대신 *를 넣어 디버깅해 봅시다. + +![Fixing Syntax Error](../images/fixing_syntax_error.png) + +버그가 수정되었고 코드가 실행되었으며 예상했던 결과를 얻었습니다. 프로그래머로서 매일 이러한 종류의 오류를 보게 될 것입니다. 디버깅 방법을 아는 것이 좋습니다. 디버깅을 잘하려면 어떤 종류의 오류가 발생했는지 이해해야 합니다. 발생할 수 있는 Python 오류 중 일부는 *SyntaxError*, *IndexError*, *NameError*, *ModuleNotFoundError*, *KeyError*, *ImportError*, *AttributeError*, *TypeError*, *ValueError*, *ZeroDivisionError* 등입니다. 이후 섹션에서 다른 Python **_오류 유형_**에 대해 자세히 알아볼 것입니다. + +Python 대화형 셸을 사용하는 방법을 더 연습해 보겠습니다. 터미널이나 명령 프롬프트로 이동하여 **python**이라는 단어를 씁니다. + +![Python Scripting Shell](../images/opening_python_shell.png) + +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 + # 주석은 해시로 시작합니다. + # (#) 심볼로 시작하기 때문에 이것은 파이썬 주석입니다. +``` + +![Maths on python shell](../images/maths_on_python_shell.png) + +다음 섹션으로 이동하기 전에 Python 대화형 셸에서 더 많은 연습을 해 보겠습니다. 셸에서 _exit()_를 작성하여 열린 셸을 닫았다가 다시 열어 Python 셸에서 텍스트를 쓰는 방법을 연습해 봅시다. + +![Writing String on python shell](../images/writing_string_on_shell.png) + +### Visual Studio Code 설치 + +Python 대화형 셸은 작은 스크립트 코드를 시도하고 테스트하는 데 적합하지만 큰 프로젝트에는 적합하지 않습니다. 실제 작업 환경에서 개발자는 다양한 코드 편집기를 사용하여 코드를 작성합니다. 이 30일간의 Python 프로그래밍 챌린지에서는 Visual Studio 코드를 사용합니다. Visual Studio Code는 매우 인기 있는 오픈 소스 텍스트 편집기입니다. 나는 vscode의 팬이고 Visual Studio 코드를 [다운로드](https://code.visualstudio.com/)하는 것을 추천하고 싶지만, 다른 편집자를 선호한다면 가지고 있는 것을 자유롭게 따르십시오. + +[![Visual Studio Code](../images/vscode.png)](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 코드를 엽니다. 열면 이런 종류의 인터페이스가 나타납니다. 레이블이 지정된 아이콘을 따라해보세요. + +![Visual studio Code](../images/vscode_ui.png) + +바탕 화면에 30DaysOfPython이라는 폴더를 만듭니다. 그런 다음 Visual Studio 코드를 사용하여 엽시다. + +![Opening Project on Visual studio](../images/how_to_open_project_on_vscode.png) + +![Opening a project](../images/opening_project.png) + +파일을 열면 30DaysOfPython 프로젝트의 디렉토리 내부에 파일과 폴더를 생성하기 위한 바로 가기가 표시됩니다. 아래에서 볼 수 있듯이 첫 번째 파일인 helloworld.py를 만들었습니다. 당신도 똑같이 할 수 있습니다. + +![Creating a python file](../images/helloworld.png) + +하루동안 오래 코딩을 한 후에 코드 편집기를 닫고 싶습니까? 이렇게 열린 프로젝트를 닫으면 됩니다. + +![Closing project](../images/closing_opened_project.png) + +축하합니다. 개발 환경 설정을 완료했습니다. 코딩을 시작해 봅시다. + +## Python 기본 + +### Python 구문 + +Python 스크립트는 Python 대화형 셸 또는 코드 편집기에서 작성할 수 있습니다. Python 파일의 확장자는 .py입니다. + +### Python 들여 쓰기 + +들여쓰기는 텍스트의 공백입니다. 많은 언어에서 들여쓰기는 코드 가독성을 높이는 데 사용되지만 Python은 들여쓰기를 사용하여 코드 블록을 만듭니다. 다른 프로그래밍 언어에서는 중괄호를 사용하여 들여쓰기 대신 코드 블록을 만듭니다. Python 코드를 작성할 때 흔히 발생하는 버그 중 하나는 잘못된 들여쓰기입니다. + +![Indentation Error](../images/indentation.png) + +### 주석 + +주석은 코드를 더 읽기 쉽게 만들고 코드에 설명을 남기기 위해 매우 중요합니다. 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 데이터 유형을 볼 수 있습니다: + +![Checking Data types](../images/checking_data_types.png) + +### 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 파일을 실행할 수 있습니다. + +![Running python script](../images/running_python_script.png) + +🌕 좋습니다. 당신은 방금 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