##파이썬 입문 목차
- 1. 파이썬 이란?
- 2-1. 파이썬 윈도우 설치
- 2-2. 파이썬 맥북 설치
- 2-3. 윈도우 파이썬 IDE 파이참 설치하기
- 2-4. 맥북 파이썬 IDE 파이참 설치하기
- 3. 파이썬 변수(Variable)의 정의, 선언, 할당
- 4. 파이썬 주석 (한줄 주석, 여러줄 주석, 단축키)
- 5. 자료형 (Data Type)의 종류
- 6. 파이썬 숫자형(정수, 실수)과 사칙연산
- 7. 파이썬 문자열(Str) 사용과 포매팅
- 8. 파이썬 리스트(List) 정리 및 사용법
- 9. 파이썬 튜플(Tuple) 정리 및 사용법
- 10. 파이썬 문자열 처리 (연산, 인덱싱, 슬라이싱, 메서드)
- 11. 파이썬 딕셔너리(Dictionary) 정리 및 사용법
- 12. 파이썬 집합(Set) 정리 및 사용법
- 13. 파이썬 조건문 정리 및 사용법
- 14. 파이썬 반복문 정리 및 사용법
- 15. 파이썬 함수 정리 및 사용법
- 16. 파이썬 클래스와 객체 정리 및 사용법
- 17. 파이썬 모듈 정리 및 사용법
- 18. 파이썬 예외처리 정리 및 사용법
1. 반복문이란?
파이썬에서의 반복문은 특정 코드 블록을 반복하는 것을 말합니다. 이 글에서는 파이썬의 대표적인 반복문인 for문과 while문에 대해 알아보도록 하겠습니다.
1.1 반복문의 종류
파이썬에서는 다음과 같은 두 가지 반복문이 존재합니다. 각각의 반복문에 대해 자세히 알아보도록 하겠습니다.
- for 반복문
- while 반복문
2. for문
2.1 for문의 구조
for 반복문은 특정한 범위 내에서 일정한 패턴에 따라 반복적으로 코드를 실행할 수 있는 구조입니다. 기본적인 구조는 아래와 같은 구조를 가지고 있습니다. 변수는 반복문을 수행할 때마다 갱신되는 변수입니다. 범위는 반복문을 수행할 횟수를 결정하는 범위입니다. 이 범위는 리스트, 문자열, 튜플 등의 시퀀스 객체일 수도 있고, range() 함수를 사용하여 범위를 지정할 수도 있습니다.
>>> for 변수 in 범위:
>>> 수행할 문장1
>>> 수행할 문장2
아래 코드는 range()함수, 리스트, 문자열을 이용한 반복문 예시 코드입니다. range() 함수에 대한 자세한 내용은 링크를 통해 확인 할 수 있습니다.
#range를 이용한 반복문
>>> for i in range(1, 11):
>>> print(i)
#리스트를 이용한 반복문
>>> fruits = ["사과", "바나나", "포도"]
>>> for fruit in fruits:
>>> print(fruit)
#문자열을 이용한 반복문
>>> text = "파이썬"
>>> for character in text:
>>> print(character)
2.2 함수를 이용한 반복문
for 반복문에서 자주 사용되는 함수들이 range()와 enumerate()입니다. range 함수는 지정한 범위의 숫자 리스트를 생성해주며, enumerate 함수는 리스트의 인덱스와 값을 동시에 순회할 수 있도록 해줍니다. 아래 첫 번째 코드는 range()함수가 0부터 4까지 총 5개의 숫자를 만들어 반복하는 코드입니다. 아래 두 번째 코드는 enumerate()함수를 이용하여 리스트의 인덱스와 요소를 함께 출력하는 코드입니다. enumerate함수에 대한 자세한 내용은 링크를 통해 확인 할 수 있습니다.
>>> for i in range(5):
>>> print(i)
>>> names = ["철수", "영희", "민수", "수지"]
>>> for idx, name in enumerate(names):
>>> print(idx, name)
3. for문 연습문제
3.1 for문 문제 1번
1부터 100까지의 숫자 중 3의 배수만 출력하세요.
##문제확인
>>> for i in range(1,101):
>>> if i % 3 == 0:
>>> print(i)
3.2 for문 문제 2번
1부터 100까지의 숫자 중 5의 배수의 합을 구하세요.
##문제확인
>>> sum = 0
>>> for i in range(1,101):
>>> if i % 5 == 0:
>>> sum += i
>>> print(sum)
3.3 for문 문제 3번
1부터 100까지의 숫자 중 3과 5의 공배수의 합을 구하세요.
##문제확인
>>> sum = 0
>>> for i in range(1,101):
>>> if i % 3 == 0 and i % 5 == 0:
>>> sum += i
>>> print(sum)
3.4 for문 문제 4번
1부터 입력한 숫자까지의 합을 구하세요.
##문제확인
>>> n = int(input("숫자를 입력하세요: "))
>>> sum = 0
>>> for i in range(1,n+1):
>>> sum += i
>>> print(sum)
3.5 for문 문제 5번
입력한 숫자의 약수를 출력하세요.
##문제확인
>>> n = int(input("숫자를 입력하세요: "))
>>> for i in range(1, n+1):
>>> if n % i == 0:
>>> print(i)
3.6 for문 문제 6번
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 리스트에서 최대값, 최소값, 평균을 구하세요.
##문제확인
>>> numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> max_num = numbers[0]
>>> min_num = numbers[0]
>>> sum = 0
>>> for num in numbers:
>>> if num > max_num:
>>> max_num = num
>>> if num < min_num:
>>> min_num = num
>>> sum += num
>>> average = sum / len(numbers)
>>> print("최대값:", max_num)
>>> print("최소값:", min_num)
>>> print("평균:", average)
3.7 for문 문제 7번
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 리스트에서 중복된 숫자를 제거하세요.
##문제확인
>>> numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> unique_numbers = []
>>> for num in numbers:
>>> if num not in unique_numbers:
>>> unique_numbers.append(num)
>>> print(unique_numbers)
3.8 for문 문제 8번
주어진 "hello world"에서 각 문자의 개수를 세세요.
##문제확인
>>> string = "hello world"
>>> char_count = {}
>>> for char in string:
>>> if char in char_count:
>>> char_count[char] += 1
>>> else:
>>> char_count[char] = 1
>>> print(char_count)
4. While 반복문
while 반복문은 조건식이 참인 동안 특정 코드 블록을 반복하는 반복문입니다. 반복문의 구조는 아래와 같습니다. 조건식이 참인 경우 코드 블록의 코드가 반복되고 조건이 거짓이되면 반복문이 종료 됩니다.
>>> while 조건식:
>>> 코드 블록
5. while문 연습 문제
5.1 while문 문제 1번
1부터 n까지의 수 중 짝수만 출력하세요.
##문제확인
>>> n = 20
>>> count = 1
>>> while count <= n:
>>> if count % 2 == 0:
>>> print(count)
>>> count += 1
5.2 while문 문제 2번
구구단 중 사용자가 입력한 단을 출력하세요. (사용자 입력 받기는 링크를 통해 자세히 확인할 수 있습니다.)
##문제확인
>>> dan = int(input("출력할 구구단의 단을 입력하세요: "))
>>> count = 1
>>> while count <= 9:
>>> print(f"{dan} * {count} = {dan * count}")
>>> count += 1
5.3 while문 문제 3번
사용자가 'q'를 입력할 때까지 이름을 입력받으세요.
##문제확인
>>> while True:
>>> name = input("이름을 입력하세요 (종료하려면 'q'를 입력하세요): ")
>>> if name == 'q':
>>> break
>>> print(f"안녕하세요, {name}님!")
5.4 while문 문제 4번
1부터 10까지의 제곱을 출력하세요.
##문제확인
>>> count = 1
>>> while count <= 10:
>>> print(f"{count}의 제곱: {count**2}")
>>> count += 1
5.5 while문 문제 5번
별(*)로 피라미드 그리세요.
##문제확인
>>> n = 5
>>> count = 1
>>> while count <= n:
>>> print(" " * (n - count) + "*" * (2 * count - 1))
>>> count += 1
6. 중첩 반복문
중첩 반복문은 하나의 반복문 안에 또 다른 반복문이 포함된 경우를 말합니다. 주로 이차원 배열이나 행렬과 같은 다차원 데이터를 처리할 때 사용됩니다. 중첩 반복문은 for문과 while문 모두에서 사용할 수 있습니다.
6.1 for문 중첩
for문을 중첩하여 사용하는 방법은 아래와 같습니다. 문법은 동일합니다. 변수는 보통 i, j, k, l ... 순으로 지정합니다. 다른 변수명으로 지정해도 문제는 없습니다.
>>> for 변수1 in 반복 가능한 객체1:
>>> for 변수2 in 반복 가능한 객체2:
>>> 실행할 코드
아래 코드는 for문 중첩 코드를 이용해 구구단을 출력하는 코드입니다. 구구단의 각 단(i)에 대해 1부터 9까지(j)의 곱셉 결과를 출력합니다.
>>> for i in range(2, 10):
>>> for j in range(1, 10):
>>> print(f"{i} * {j} = {i * j}")
>>> print()
6.2 while문 중첩
while문을 중첩하여 사용하는 방법은 아래와 같습니다. 문법은 동일합니다.
>>> while 조건1:
>>> while 조건2:
>>> 실행할 코드
>>> 조건1에 관련된 변수 변경
아래 코드는 while문 중첩 코드를 이용해 구구단을 출력하는 코드입니다. 구구단의 각 단(i)에 대해 1부터 9까지(j)의 곱셉 결과를 출력합니다.
>>> i = 2
>>> while i < 10:
>>> j = 1
>>> while j < 10:
>>> print(f"{i} * {j} = {i * j}")
>>> j += 1
>>> print()
>>> i += 1
6.3 for문과 while문 중첩 사용
for문과 while문을 함께 중첩하여 사용할 수도 있습니다. 구조는 아래와 같습니다.
>>> for 변수 in 반복 가능한 객체:
>>> while 조건:
>>> 실행할 코드
>>> 조건에 관련된 변수 변경
>>> while 조건:
>>> for 변수 in 반복 가능한 객체:
>>> 실행할 코드
>>> 조건에 관련된 변수 변경
7. 제어문
반복문에는 break, continue, pass 세 가지 제어문이 있습니다. 이 제어문들은 반복문의 실행 흐름을 제어하는데 사용됩니다.
7.1 break
break 제어문은 현재 실행 중인 반복문을 즉시 종료하고 다음 코드로 넘어갑니다. 주로 무한 루프에서 특정 조건을 만족할 때 종료하는 데 사용됩니다. 아래 코드에서 n이 10보다 커지면 break문이 실행되어 while문을 종료합니다.
>>> n = 1
>>> while True:
>>> if n > 10:
>>> break
>>> print(n)
>>> n += 1
7.2 continue 제어문
continue 제어문은 현재 실행 중인 반복문의 나머지 부분을 건너뛰고 다음 반복으로 진행합니다. 특정 조건을 만족하는 경우에만 실행하고 싶지 않은 코드가 있을 때 유용합니다. 아래 코드에서 i가 짝수일 때 continue문이 실행되어 print(i)를 건너뛰고 다음 반복으로 진행합니다.
>>> for i in range(1, 11):
>>> if i % 2 == 0:
>>> continue
>>> print(i)
7.3 pass 제어문
pass 제어문은 아무런 동작을 하지 않습니다. 코드의 구조를 잡아주거나, 아직 구현되지 않은 부분을 표시하는 데 사용됩니다. 코드가 실행되긴 하지만, 특별한 작업을 하지 않고 그냥 지나가게 됩니다. 아래 코드에서 i가 짝수일 때 pass문이 실행되지만, 아무런 동작을 하지 않고 다음 반복으로 진행합니다.
>>> for i in range(1, 11):
>>> if i % 2 == 0:
>>> pass
>>> else:
>>> print(i)