DevSSOM
파이썬 기초 - 반복문 (for문, for-range문, while문, break문) 본문
반복문
: 어떠한 '조건'이나, '범위 내'에서 어떠한 명령을 반복적으로 수행하는 것.
ex. 숙제를 12시 30분까지 하겠어! 숙제를 10페이지만큼 하겠어!
for문
: 원소로 반복하는 방법.
시퀀스의 원소를 하나씩 변수에 넣어가면서 명령 실행.
for문에 들어갈 명령들은 같은 들여쓰기로 구분되고, 명령은 len(시퀀스)번 만큼 실행됨.
for 변수 in 시퀀스:
<수행할 명령>
# 시퀀스에서 각각의 원소에는 인덱스가 있어
# 그 인덱스로 나눠진 원소들을 변수에 하나하나 넣어가면서 명령을 실행한다는 의미
# 그리고 그 for문 안에는 실행시킬 어떤 명령도 함께 주어지는것
이 for문은 '범위'에 관련된 반복문이야.
그 범위는 파이썬에서 시퀀스로 주어짐. 그리고 이 시퀀스 안에서 반복이 일어나는 것.
ex. [1, 2, 3, 4, 5]에서 원소를 하나씩 가져와서 명령대로 출력
시퀀스 for 명령
sum = 0
for i in [1, 2, 3, 4, 5]: # 명령이 5번 실행되는거
sum = sum + i
length = 0
for x in 'abcdefg': # len(abcdefg) = 7. 명령이 7번 실행되는거야
length = length + 1
for-range문 ver 1.
: 횟수로 반복하는 방법.
for 변수 in range(a):
<수행할 명령>
count = 0
for i in range(10): # range(10) >> i가 (0, 1, ... , 9) 중에서 값을 받아와
count = count + 1 # 이 명령을 10번 반복. 이전의 count에 1을 더해서 새로운 count를 만드는것
print(count) # 10
for i in range(5):
print("I love Python!")
# 실행 결과
I love Python!
I love Python!
I love Python!
I love Python!
I love Python!
참고) range(첫번째 수, 마지막번째 수) : 연속되는 숫자를 만들어 주는 시퀀스 자료형
range(a, b) # a, a+1, a+2, ... , b-1 |★ b가 아니라 b-1이 마지막으로 출력되는게 중요!
range(0, 9) # 0, 1, ... , 7, 8
range(5) # range(0, 5) >> 0, 1, 2, 3, 4
# 그래서 range(a) : a번 반복한다는 뜻
for-range문 ver 2.
: 구간으로 반복하는 방법.
for 변수 in range(a, b): # a부터 b-1 숫자에 대해서 반복이 일어나 (a, ... , b-1)
<수행할 명령>
a = [1]
for i in range(2, 4): # 2, 3 두 숫자를 가지고 for문을 돌아
a.append(i) # 리스트 값의 맨뒤에 i를 추가해줘
print(a) # [1, 2, 3]
while문
: 조건으로 반복하는 방법. 조건이 True면 명령을 수행.
while 조건: # 조건이 True면 명령을 수행하겠다
<수행할 명령> # 명령이 끝나면 다시 돌아와서 첨부터 다시 확인. 이걸 반복
i = 3
while i > 0: # i가 0보다 클 때
print(i) # 이 명령을 수행
i = i - 1 # 이 명령을 수행. i = 0 이되면 while문을 빠져나와
print("Launch!") # 빠져나와서 출력
# 실행 결과
3
2
1
Launch!
Q) while문에서 조건이 항상 True면?
: 무한정 코드가 실행됨. 빠져나올 수 없는 무한루프에 갇힘.
i = 1
while i > 0: # 항상 True
print(i)
i = i + 1
# 실행결과 1 2 3 4 5 ...
그럴 때 필요한 게 바로↓↓↓
break문
: 반복문을 탈출하는 역할. if문으로 조건을 걸어준 다음, break 실행.
i = 0
while True:
print("knock")
if i >= 3:
break
i = i + 1
# 실행결과 | knock knock knock knock
연습문제 1
for와 range를 이용해 19단을 출력해봐.
for i in range(1, 20): # 1부터 19까지의 연속하는 숫자가 필요한 상황이니까
print("19 *", i, "=", 19 * i)
# 실행 결과
19 * 1 = 19
19 * 2 = 38
19 * 3 = 57
...
연습문제 2 : 계단 별자리
3을 입력하면 3층, 5를 입력하면 5층의 계단 별자리가 나오게 만들어봐.
num = int(input())
i = 0
while i < num+1:
star = "*" * i
print(star)
i = i + 1
# input 값으로 5를 넣고 실행한 결과
*
**
***
****
*****
연습문제3 : 평균 구하기
while문을 이용해서, 0을 입력할 때 까지 입력을 받는거야. 0을 입력받았으면, 0을 입력한 바로 이전까지의 수들의 평균을 구해봐.
# 입력예시
100
90
80
0
# 출력예시
90.0
data = []
while True :
num = int(input())
if not num == 0:
data.append(num)
else:
break
average = sum(data)/len(data)
print(average)
'Python > 기초' 카테고리의 다른 글
파이썬 Numpy - 배열의 기초 (0) | 2021.07.26 |
---|---|
파이썬 Numpy - 개념 (0) | 2021.07.24 |
파이썬 기초 - 객체지향 프로그래밍 (1) | 2021.06.10 |
파이썬 기초 - 시퀀스 자료형 (0) | 2021.06.09 |
파이썬 기초 - 리스트 활용2 (0) | 2021.06.09 |
파이썬 기초 - 조건문 (if - elif - else) (0) | 2021.06.09 |
파이썬 기초 - 논리 자료형과 비교연산 (0) | 2021.06.09 |