내용 목차
파이썬에 반복적인 일을 처리하는 구문은 for문, while문이 있습니다. 오늘은 파이썬 for문 while문에 알아 보겠습니다.
for문은 조건문인 if문처럼 블록단위로 문장이 실행됩니다. 그래서 반드시 들여쓰기를 해줘야 합니다. 일단 for문이 나오면 하위블록의 실행구문들은 들여쓰기 해야합니다.
# for문의 들여쓰기
for i in data:
print(i + i)
print(i * i)
Code language: Python (python)
파이썬 for문 기본구조
for 변수 in 리스트(문자열, 튜플, 레인지) :
실행문1
실행문2
리스트나 문자열 등이 처음부터 차례대로 변수에 대입되면서 실행문1, 실행문2가 각각 실행되는 구조입니다.
data = ['바나나','감자','고구마']
for temp in data:
print(temp)
# 결과값88
# 바나나
# 감자
# 고구마
Code language: Python (python)
파이썬 for문 활용
예제를 한번 보죠. 5명 학생의 점수가 있고 이 점수가 50점이 넘으면 통과, 미만이면 탈락시키는 프로그램을 파이썬 for문을 이용해 만들어 보죠.
scores = [85,45,35,95,55]
num=0
for grade in scores:
num = num+1
if grade >= 50:
print("%d번 학생은 %d점으로 통과했습니다." % (num,grade))
else:
print("%d번 학생은 %d점으로 탈락입니다." % (num,grade))
Code language: Python (python)
결과값은 다음과 같습니다.
1번 학생은 85점으로 통과했습니다.
2번 학생은 45점으로 탈락입니다.
3번 학생은 35점으로 탈락입니다.
4번 학생은 95점으로 통과했습니다.
5번 학생은 55점으로 통과했습니다.
range함수를 이용해서 일정 범위를 연속 대입하는 것을 알아보죠. range는 마지막 숫자는 포함되지 않습니다.
range(10) : 이것은 0~9까지를 의미 합니다.
range(0,10) : 이것은 0~9까지를 의미합니다.
range(1,11) : 이것은 1~10까지를 의미합니다.
for a in range(1,6):
print(a+a, end=' ')
Code language: Python (python)
** 결과값 **
2 4 6 8 10
위의 예제에서 print문에 end=’ ‘을 넣은 이유는 결과값을 가로로 계속 출력하기 위해서 넣은 매개변수 입니다.
위의 예제는 아래와 같이 결과값을 리스트로 담을 수도 있습니다. 여기서는 축약된 형식의 for문을 사용해 보겠습니다.
result = [a+a for a in range(1,6)]
print(result)
Code language: Python (python)
** 결과값 [2, 4, 6, 8, 10]
파이썬 while문 기본구조
파이썬에서 while문은 조건을 먼저 제시하고 이 조건이 참이면 계속해서 블록안의 코드를 반복해서 실행합니다. 만약 조건이 거짓이 나오지 않는다면 무한반복에 의해 무한루프에 빠지게 됩니다.
그래서 while문은 조건을 잘 따져서 무한루프에 빠지는 일이 없어야 하거나 강제로 루프를 빠져나오게 하는 구문을 추가해야 합니다.
while (조건): 실행문1 실행문2 실행문3
while문의 활용
i=10
while i>=0 :
print('%d번' %i, end=' ')
i=i-1
Code language: Python (python)
10부터 0까지 계속 줄여가면서 반복하는 구문입니다.
** 결과값 ** 10번 9번 8번 7번 6번 5번 4번 3번 2번 1번 0번
break문 : while 블록 밖으로 탈출
위의 예제에서 10~5까지만 출력하고 4번부터는 출력하고 싶지 않다면 어떻게 해야 할까요. 이럴때는 break문을 사용하면 됩니다.
i=10
while i>=0 :
if i==4: break
print('%d번' %i, end=' ')
i=i-1
Code language: Python (python)
위와 같이 if문을 사용하여 i가 4가되면 while 반복문을 빠져나오라는 구문을 추가하면 됩니다.
** 결과값 **
10번 9번 8번 7번 6번 5번
continue문 : while 블록 처음으로 다시 간다
10~1의 숫자 가운데 홀수만 출력하고 싶다. 그런데 while문과 continue문을 사용해서 만들어라.
i=10
while i>=1 :
i = i - 1
if i % 2 == 0: continue
print(i, end=' ')
Code language: Python (python)
if i % 2 == 0: continue 의 의미는 2로 나누어서 나머지가 0이면 다시 while문 처음으로 올라가서 내려온다.
** 결과값 ** 9 7 5 3 1
파이썬 while문 무한루프
while문에서 무한루프는 조건이 계속 참이라는 말입니다. while문을 이용하여 무한루프를 만드는 방법은 간단합니다.
while True:
print("무한루프 입니다")
Code language: Python (python)
위와 같이 조건식 부분을 True로 표시하면 모든 것이 참이 되기 때문에 무한루프가 되는 것입니다.
** 결과값 ** 무한루프 입니다 무한루프 입니다 무한루프 입니다 무한루프 입니다 무한루프 입니다 ... ... ...
위와 같이 끝없이 “무한루프 입니다”를 출력하게 됩니다. 이 무한루프를 빠져나가기 위해서는 Ctrl+C 키를 눌러야 빠져나가게 됩니다. 이런 무한루프를 사용하는 경우는 거의 없겠죠.
오늘은 파이썬 반복문인 while문, for문에 대해 알아봤습니다. 이외에도 break, continue에 대해서도 알아 봤습니다.