파이썬 while문 for문 변환 - paisseon whilemun formun byeonhwan

DevSSOM

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)

점프 투 파이썬 00장 들어가기 전에 00-1 머리말 00-2 저자소개 00-3 주요변경이력 00-4 책 구입 안내 01장 파이썬이란 무엇인가? 01-1 파이썬이란? 01-2 파이썬의 특징 01-3 파이썬으로 무엇을 할 수 있을까? 01-4 파이썬 설치하기 01-5 파이썬 둘러보기 01-6 파이썬과 에디터 02장 파이썬 프로그래밍의 기초, 자료형 02-1 숫자형 02-2 문자열 자료형 02-3 리스트 자료형 02-4 튜플 자료형 02-5 딕셔너리 자료형 02-6 집합 자료형 02-7 불 자료형 02-8 자료형의 값을 저장하는 공간, 변수 02장 연습문제 03장 프로그램의 구조를 쌓는다! 제어문 03-1 if문 03-2 while문 03-3 for문 03장 연습문제 04장 파이썬의 입력과 출력 04-1 함수 04-2 사용자 입력과 출력 04-3 파일 읽고 쓰기 04-4 프로그램의 입력과 출력 04장 연습문제 05장 파이썬 날개달기 05-1 클래스 05-2 모듈 05-3 패키지 05-4 예외 처리 05-5 내장 함수 05-6 표준 라이브러리 05-7 외부 라이브러리 05장 연습문제 06장 파이썬 프로그래밍, 어떻게 시작해야 할까? 06-1 내가 프로그램을 만들 수 있을까? 06-2 3과 5의 배수 합하기 06-3 게시판 페이징하기 06-4 간단한 메모장 만들기 06-5 탭을 4개의 공백으로 바꾸기 06-6 하위 디렉터리 검색하기 06-7 파이보 06-8 코딩도장 07장 파이썬 고급주제 07-1 파이썬과 유니코드 07-2 클로저와 데코레이터 07-3 이터레이터와 제너레이터 07-4 파이썬 타입 어노테이션 08장 정규표현식 08-1 정규 표현식 살펴보기 08-2 정규 표현식 시작하기 08-3 강력한 정규 표현식의 세계로 09장 종합문제 10장 풀이 11장 마치며