DevSSOM

파이썬 기초 - 반복문 (for문, for-range문, while문, break문) 본문

Python/기초

파이썬 기초 - 반복문 (for문, for-range문, while문, break문)

데브쏨 2021. 6. 9. 19:59
반응형

반복문

: 어떠한 '조건'이나, '범위 내'에서 어떠한 명령을 반복적으로 수행하는 것.

  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)

 

728x90
반응형
댓글