본문 바로가기
컴퓨터 프로그래밍/python

Python 반복문(Loop)

by JaeBaek 2020. 8. 11.

Loop (needfix)

 

 

보통 반복적으로 처리 되는 문장을 계속해서 같은 코드를 작성하는 것은 큰 낭비입니다. 따라서 간단한 반복문에 해당하는 문을 사용을 하면 메모리의 낭비를 줄일 수 있습니다.

 

■ while 반복문

while 조건 :

    명령

while문은 if문 과 비슷한 형식을 가지지만 조건을 만족하는 동안 계속해서 반복을 하는 것을 알 수 있습니다.

 

ex) while loop

while loop

stu=1

while stu<=5:

    print(str(stu)+"번 학생은 python을 좋아합니다.")

    stu+=1

result

1번 학생은 python을 좋아합니다.
2번 학생은 python을 좋아합니다.
3번 학생은 python을 좋아합니다.
4번 학생은 python을 좋아합니다.
5번 학생은 python을 좋아합니다.

 

■ for 반복문

for 제어변수 in 컬렉션:

    명령

 기본 적인 형태는 다음과 같고, 컬렉션(collection)이란 리스트나 문자열과 같이 여러 개의 값을 모아 놓은 것을 말합니다. 따라서 리스트와 같이 [1,2,3,4,5] 다음과 같은 컬렉션을 만들었다고 하면 0번째 index부터 시작해서 마지막으로 5까지 반복합니다. 이러한 순차적인 수를 만드는 방법은 range 명령을 이용하면 됩니다. 

range(시작, 끝, 증가값) 참고로 끝값은 우리가 원하는 값에서 +1 해주어야 그 값까지 반복을 한다.

 

※ 컴퓨터에서의 범위는 끝 요소를 제외하고 그 직전까지만을 포함시킵니다. 예를들어서 range(1,10)이라고 한다면 1~9사이의 범위를 말하는 것입니다. 왜냐하면 저희가 일상생활에서 사용하는 범위같은 경우에는 1~10인 반면 컴퓨터는 이 범위를 0~10으로 받아들이기 때문입니다. 따라서 저희가 원하는 만큼의 범위로 맞춰주려면 끝 요소에 +1을 해주어야 합니다. 

 

for loop

for stu in range(1,10):

    print(str(stu)+"번 학생은 python을 좋아합니다.")

result

1번 학생은 python을 좋아합니다.
2번 학생은 python을 좋아합니다.
3번 학생은 python을 좋아합니다.
4번 학생은 python을 좋아합니다.
5번 학생은 python을 좋아합니다.
6번 학생은 python을 좋아합니다.
7번 학생은 python을 좋아합니다.
8번 학생은 python을 좋아합니다.
9번 학생은 python을 좋아합니다.

 

★ break

break 명령은 반복문을 끝내는 명령이다. 어떤 반복에서 그 반복이 의미가 없어진 경우 if 문과 break를 넣어 사용할 수 있습니다.

break // 음수 만날시 반복문 빠져나오기

number=[5,7,6,9,-1,3,4]

for s in number:

    if s<0:

        break

    print(s)

print("음수를 만났습니다.")

result

5
7
6
9
음수를 만났습니다.

 

★ continue

break명령은 루프를 탈출하였는데 continue명령은 조건을 만족하지 못하는 루프 하나를 건너뛰고 나머지를 수행하는 것을 말한다. 

continue

number=[5,7,6,9,-1,3,4]

for s in number:

    if s<0:

        continue

    print(s)

print("처리 완료.")

result

5
7
6
9
3
4
처리 완료.

 

 

■ 이중 루프

루프끼리 중첩된 경우를 이중 루프라고 합니다. 저는 개인적으로 java나 c 언어에 많이 익숙해져있어서 { } 가 있기 때문에 들여쓰기 이런거 신경을 잘 안썻어요. 그런데 아마 저 처럼 다른 언어에 조금 더 적응이 되신분들은 처음에 주의 하셔야 할 것 같아요.

 

★ Example

이중 루프 - 구구단

for dan in range(2,10):

    print(dan,"단")

    for hang in range(2,10):

        print(dan,"*",hang,"=",dan*hang)

    print()
# 2~9단 진행 예상

 

증가하는 별

for y in range(1,10):

    for x in range(1,y):

        print("*",end=(""))

    print("")

result

*
**
***
****
*****
******
*******
********

 

오른쪽 기준으로 증가하는 별

for x in range(10,1,-1):

    for y in range(1,x):

        print(" ",end=(""))

    print("*"*(10-x))

result

        *
       **
      ***
     ****
    *****
   ******
  *******
 ********

 

■ 무한 루프

어떠한 조건을 첨가하여 그 조건을 만족할때까지 계속해서 반복을 시키는 경우에 사용합니다. 기본적으로 while 문으로 작성을 하며, for문으로는 작성을 할 수 없습니다. while문의 조건식에 True를 적어 놓음으로써 항상 참인 값을 넣어 무한히 반복을 하도록 만듭니다. 

 

while True:

    명령

    if 탈출조건 : break

 

ex) 정답맞추기

무한 루프

print("3 X 8 = ?")

while True:

    answer=int(input("답 : "))

    if answer==24:

        break

print("정답입니다!")

result

3 X 8 = ?
답 : 15
답 : 24
정답입니다!

 

'컴퓨터 프로그래밍 > python' 카테고리의 다른 글

python 산술(Arithmetic)  (0) 2020.08.12
Python 함수(function)  (0) 2020.08.11
python 조건문(Conditional)  (0) 2020.08.11
python 변수(variable)  (0) 2020.08.11
python start  (0) 2020.08.11

댓글