728x90
01. for문
- 값의 범위나 반복 횟수가 정해져 있을 때 주로 사용하는 반복문
- 반복 가능 객체 : 문자열, 리스트, 튜플, range, 세트, 딕셔너리
for 변수 in 반복가능객체:
반복실행문
# 리스트에 있는 요소 하나하나가 i라는 변수에 들어가며, 차례차례 반복
test = ["one", "two", "three"]
for i in test:
print(i)
one
two
three
# for 반복문은 문자열을 함께 사용할 수도 있음
for char in "안녕하세요":
print(char)
안
녕
하
세
요
# 5명의 학생이 시험을 보았는데 시험 점수가 60점을 넘으면 합격이고 그렇지 않으면 불합격
# 학생들의 시험점수를 차례로 검사해서 합격인지 불합격인지 통보해주는 프로그램 만들기
scores = [90, 25, 67, 45, 80]
number = 0
for score in scores:
number += 1
if score >= 60:
print(f"{number}번 학생은 합격입니다")
else:
print(f"{number}번 학생은 불합격입니다")
1번 학생은 합격입니다
2번 학생은 불합격입니다
3번 학생은 합격입니다
4번 학생은 불합격입니다
5번 학생은 합격입니다
02. for문 중첩
- 일반적으로 n차원 처리를 할 때 사용
- 리스트가 한 겹으로 감싸지면 1차원 리스트
- [1, 2, 3]
- 리스트가 두 겹으로 감싸지면 2차원 리스트
- [[1, 2, 3], [4, 5, 6]]
- 위와 같은 n차원 리스트 요소를 모두 확인하려면 반복문을 n번 중첩해야함
- 리스트가 한 겹으로 감싸지면 1차원 리스트
over_list = [
[1, 2, 3],
[4, 5, 6, 7],
[8, 9]
]
for items in over_list:
for item in items:
print(item)
1
2
3
4
5
6
7
8
9
03. continue
scores = [90, 25, 67, 45, 80]
number = 0
for score in scores:
number += 1
if score < 60:
continue
print(f"{number}번 학생은 합격입니다")
1번 학생은 합격입니다
3번 학생은 합격입니다
5번 학생은 합격입니다
04. range
- 수열을 자동으로 만들어주는 함수
- range(시작값, 종료값, 증감값)
for i in range(1, 11, 1):
print(i, end = " ")
1 2 3 4 5 6 7 8 9 10
for i in range(1, 11, 2):
print(i, end = " ")
1 3 5 7 9
for i in range(1, 11): ##증감값은 생략 가능
print(i, end = " ")
1 2 3 4 5 6 7 8 9 10
for i in range(10): ##시작값 생략하면 0이 자동으로 들어감
print(i, end = " ")
0 1 2 3 4 5 6 7 8 9
# 연습문제: 1부터 10까지의 자연수의 합
##while을 이용
score = 1
result = 0
while score <= 10:
result += score
score += 1
print(result)
##for를 이용
result = 0
for i in range(1, 11):
result += i
print(result)
##풀이
#############################
tot = 0
for i in range(1, 11):
tot += i
print(tot)
55
55
55
##구구단 2단부터 9단까지 출력되는 코드
# 2 * 1 = 2
# ...
# 9 * 9 = 81
dan = 2
for dan in range(2, 10):
for gugu in range(1, 10):
print(f"{dan} * {gugu} = {dan * gugu}")
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18
3 * 1 = 3
3 * 2 = 6
3 * 3 = 9
3 * 4 = 12
3 * 5 = 15
3 * 6 = 18
3 * 7 = 21
3 * 8 = 24
3 * 9 = 27
4 * 1 = 4
4 * 2 = 8
4 * 3 = 12
4 * 4 = 16
4 * 5 = 20
4 * 6 = 24
4 * 7 = 28
4 * 8 = 32
4 * 9 = 36
5 * 1 = 5
5 * 2 = 10
5 * 3 = 15
5 * 4 = 20
5 * 5 = 25
5 * 6 = 30
5 * 7 = 35
5 * 8 = 40
5 * 9 = 45
6 * 1 = 6
6 * 2 = 12
6 * 3 = 18
6 * 4 = 24
6 * 5 = 30
6 * 6 = 36
6 * 7 = 42
6 * 8 = 48
6 * 9 = 54
7 * 1 = 7
7 * 2 = 14
7 * 3 = 21
7 * 4 = 28
7 * 5 = 35
7 * 6 = 42
7 * 7 = 49
7 * 8 = 56
7 * 9 = 63
8 * 1 = 8
8 * 2 = 16
8 * 3 = 24
8 * 4 = 32
8 * 5 = 40
8 * 6 = 48
8 * 7 = 56
8 * 8 = 64
8 * 9 = 72
9 * 1 = 9
9 * 2 = 18
9 * 3 = 27
9 * 4 = 36
9 * 5 = 45
9 * 6 = 54
9 * 7 = 63
9 * 8 = 72
9 * 9 = 81
05. for반복문과 딕셔너리 조합
- for반복문과 딕셔너리를 조합하면 딕셔너리의 키가 변수로 들어감
dict1 = {"name" : "건조 망고",
"type" : "당 절임",
"ingredient" : ["망고", "설탕", "나트륨", "색소"],
"origin" : "필리핀"}
for key in dict1:
print(key)
print(dict1[key])
print("-" * 10)
name
건조 망고
----------
type
당 절임
----------
ingredient
['망고', '설탕', '나트륨', '색소']
----------
origin
필리핀
----------
dict1["name"]
'건조 망고'
06. enumerate함수
- 리스트의 요소를 반복할 때 요소의 인덱스를 함께 반환
- 현재 인덱스가 몇 번째인지 확인하고 싶은 경우 사용
example_list = ["요소1", "요소2", "요소3"]
for idx, value in enumerate(example_list):
print(f"{idx}번째 요소는 {value}입니다")
0번째 요소는 요소1입니다
1번째 요소는 요소2입니다
2번째 요소는 요소3입니다
07. 리스트 내포(List comprehension)
- 실행 시간이 줄어듦
%%timeit
##쥬피터에서만 제공, 셀 실행 시간을 계산
result1 = []
for num in range(10):
result1.append(num * 3)
# print(result1)
475 ns ± 7.15 ns per loop (mean ± std. dev. of 7 runs, 1,000,000 loops each)
%%timeit
result2 = [num * 3 for num in range(10)]
# print(result2)
370 ns ± 3.04 ns per loop (mean ± std. dev. of 7 runs, 1,000,000 loops each)
result = [num * 3 for num in range(10) if num % 2 == 0]
print(result)
[0, 6, 12, 18, 24]
728x90
'01_Python' 카테고리의 다른 글
37_제어문>for반복문과 딕셔너리 조합 (0) | 2025.01.08 |
---|---|
36_제어문>제어문 연습(1) (2) | 2025.01.07 |
34_제어문>while문 (0) | 2025.01.07 |
33_제어문>조건부 표현식 (0) | 2025.01.07 |
32_제어문>pass (1) | 2025.01.07 |