아하 로고
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
말쑥한살모사235
말쑥한살모사23520.09.24
파이썬 for, while 문의 차이가 무엇인가요?

요즘 학교에서 파이썬을 배우는데, for 문과 while 문의 차이가 궁금합니다. 두개의 문법을 사용하기에 적합한 때가 따로 있는 것인가요? 상황에 따라 for문과 while 문을 효과적으로 고르는 방법이 궁금합니다.

  • 일단 for문과 while문의 차이는 파이썬 뿐만 아니라 다른 언어에서도 대부분 같은 원리로 구성되어있습니다.

    while문은 while('조건')의 조건이 참인 동안 반복입니다.

    while문이나 외부 입력으로 조건에서 벗어나지 못하도록 만들면 무한루프로 작동하게 되는 겁니다.

    예를 들어 while(a=4) 라고 해놨는데 반복문 내부의 코드가 a를 4로 만들지 못하면 계속 반복되는 형태입니다.

    for문은 순서열 처음부터 끝까지 반복하도록 설정됩니다.

    예를 들어 i가 1이고 i가 9보다 크게 될때까지 반복하도록 세팅되어

    i를 변화시키면서 i가 완료조건에 해당될때까지 돌아가는 형태입니다.


  • for 문은 리스트, 튜플, 제네레이터와 같은 iterable 객체에서 순서대로 순서대로 각 item을 실행문에서 처리하는 제어문입니다.or

    while문은 실행문에서 종료하기 전까지 실행문을 반복실행하는 제어문입니다.

    import random numbers = [1,2,3,4,5] # for문 예제(리스트의 모든 수 제곱값 출력) for num in numbers: print(num ** 2) # for문 예제(랜덤값을 생성후 0.999보다 큰 값일 경우 출력) for i in range(1000 ** 1000): rand = random.random() if rand > 0.999: print(rand) # while문 예제(리스트의 모든 수 제곱값 출력) index = 0 while index < len(numbers): print(numbers[index] ** 2) index += 1 # while문 예제(랜덤값을 생성후 0.999보다 큰 값일 경우 출력) rand = 0 while rand > 0.99: rand = random.random() print(rand)

    보시는 바와 같이 for문이든 while문이든 동일한 문제를 해결할 수 있으나 상황에 따라 좀더 편리한 방법이 있습니다. iterable 객체를 순차적으로 동일한 처리하기 원할 때 for문을 사용하시는 것이 편리하고, 종료시점을 실행하기 전에 명확히 알기 어렵거나 iterable 객체를 순차적으로 처리하는 것이 아닌 경우 while문을 사용하시는 것이 편리합니다.


  • 안녕하세요

    for 와 while에 대해서 궁금하셨나보군요

    for 문은 시작과 종료가 정해져있습니다

    while은 종료만 정해져 있습니다

    그래서

    for 문이 5번 실행하라고 설정되어 있다면? 5번 실행을 하지만?

    while문은 5번 실행하라고 설정되어 있어도? 그 전에 끝나거나 그 이상 실행할 수 있습니다

    이점이 제일 큰 차이점입니다!


  • for문은 보통은 명시적으로 몇번 실행해야 하는지 정해진 상태에서 많이 사용합니다.

    while문은 몇번 실행해야할지 모르는 상태에서 많이 사용합니다.

    while문의 경우 무한루프를 만들기 위해서도 사용이 됩니다.

    특정한 입력이나 값이 나올때까지 지속적으로 실행이 되다가 특정한 입력이나 값이 나오게 되면 while문을 종료 하는 것이죠

    for문의 경우 파이썬에서는 무한루프로 만들 수가 없습니다.

    for문의 경우 list, array 같은 길이가 정해져 있는 값을 사용하기 위해서 반복문을 많이 사용합니다.

    while문은 사용자의 입력 또는 특정한 값이 나올 때까지 지속적으로 반복할때 사용합니다.


  • 결국에 둘다 똑같습니다.

    똑같이 구현가능하고, 그 예로 GO 언어 경우에는 while문이 없이 for문만 있습니다. 그냥 취향에 따라 쓰시면 됩니다.

    차이가 있다면 for문은 변수값을 초기화 할 수 있고 초기화 한 후에 조건이 참 인동안 반복 실행한다는 점 while은 초기화 없이 그냥 조건이 참인 동안 반복 실행된다는 점입니다.