ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [python] for (반복문)
    python 2025. 5. 23. 16:08

    for

    Python에서 for문은 반복문(loop)의 한 종류로, 리스트, 문자열, 튜플, 딕셔너리, range 등 반복 가능한(iterable) 객체의 요소를 하나씩 꺼내며 반복할 때 사용합니다.

     

    ✅ 기본 문법

    for 변수 in 반복가능한객체:
        반복할_코드

     

    ✅ 예제 1: 리스트 반복

    fruits = ['apple', 'banana', 'cherry']
    
    for fruit in fruits:
        print(fruit)

     

    apple
    banana
    cherry

     

    ✅ 예제 2: 문자열 반복

    for char in "hello":
        print(char)

     

    h
    e
    l
    l
    o

     

    ✅ 예제 3: range()와 함께 사용

    for i in range(5):
        print(i)

     

    0
    1
    2
    3
    4

     

    • range(시작, 끝, 증가) 구조도 사용 가능
    for i in range(1, 10, 2):
        print(i)

     

    1
    3
    5
    7
    9

     

    ✅ 예제 4: 리스트의 인덱스와 값 같이 사용

    names = ["Tom", "Jane", "Mike"]
    
    for index, name in enumerate(names):
        print(index, name)

     

    0 Tom
    1 Jane
    2 Mike
    PS C:\U

     

    ✅ 예제 5: 딕셔너리 반복

    person = {"name": "Alice", "age": 30}
    
    for key, value in person.items():
        print(key, value)

     

    name Alice
    age 30

     

    ✅ 중첩 for문

    for i in range(3):
        for j in range(2):
            print(i, j)

     

    0 0
    0 1
    1 0
    1 1
    2 0
    2 1

     

    ✅ break와 continue

    • break: 반복 중단
    • continue: 다음 반복으로 건너뜀
    for i in range(5):
        if i == 3:
            break
        print(i)

     

    0
    1
    2

    for i in range(5):
        if i == 3:
            continue
        print(i)

     

    0
    1
    2
    4

     

    실습

    for waiting_no in [0,1,2,3,4]:
        print("대기번호 : {0}".format(waiting_no))

     

    대기번호 : 0
    대기번호 : 1
    대기번호 : 2
    대기번호 : 3
    대기번호 : 4

     

    for waiting_no in range(1, 6):
        print("대기번호 : {0}".format(waiting_no))

     

    대기번호 : 1
    대기번호 : 2
    대기번호 : 3
    대기번호 : 4
    대기번호 : 5

     

    starbucks = ["아이언맨", "토르", "아이엠 그루트"]
    for customer in starbucks:
        print("{0}, 커피가 준비되었습니다".format(customer))

     

    아이언맨, 커피가 준비되었습니다.
    토르, 커피가 준비되었습니다.
    아이엠 그루트, 커피가 준비되었습니다.

     

    # 출석번호가 1 2 3 4, 앞에 100을 붙이기로함 -> 101, 102, 103, 104
    students = [1,2,3,4,5]
    print(students)
    students = [i+100 for i in students]
    print(students)

     

    [101, 102, 103, 104, 105]

    # 학생 이름을 길이로 변환
    students = ["iron man", "Thor", "I am groot"]
    students = [len(i) for i in students]
    print(students)

     

    [8, 4, 10]

    # 학생 이름을 대문자로 변환
    students = ["iron man", "Thor", "I am groot"]
    students = [i.upper() for i in students]
    print(students)

     

    ['IRON MAN', 'THOR', 'I AM GROOT']

     

    퀴즈

     

    Quiz) 당신은 CoCoa 서비스를 이용하는 택시 기사님입니다.
    50명의 승객과 매칭 기회가 있을 때, 총 탑승 승객 수를 구하는 프로그램을 작성하시오.

    조건1 : 승객별 운행 소요 시간은 5분 ~ 50분 사이의 난수로 정해집니다.
    조건2 : 당신은 소요 시간 5분 ~ 15분 사이의 승객만 매칭해야합니다.

    (출력문 예제)
    [0] 1번째 손님 (소요시간 : 15분)
    [ ] 2번째 손님 (소요시간 : 50분)
    [0] 3번째 손님 (소요시간 : 5분)
    ...
    [ ] 50번째 손님 (소요시간 : 16분)

     

    from random import *
    cnt = 0 # 총 탑승 승객수
    for i in range(1, 51): # 1 ~ 50이라는 수 (승객)
        time = randrange(5, 51) # 5분 ~ 50분 소요 시간
        if 5<= time <= 15: # 5분 ~ 15분 이내의 손님, 탑승 승객수 증가 처리 (매칭 성공공)
            print("[O] {0}번째 손님 (소요시간 : {1}분)".format(i, time))
            cnt += 1
        else: # 매칭 실패
            print("[ ] {0}번째 손님 (소요시간 : {1}분)".format(i, time))
    print("총 탑승 승객 : {0} 분".format(cnt))

     

    [ ] 1번째 손님 (소요시간 : 49분)
    [O] 2번째 손님 (소요시간 : 7분)
    [ ] 3번째 손님 (소요시간 : 34분)
    [ ] 4번째 손님 (소요시간 : 30분)
    [ ] 5번째 손님 (소요시간 : 34분)
    [O] 6번째 손님 (소요시간 : 10분)
    [ ] 7번째 손님 (소요시간 : 17분)
    [ ] 8번째 손님 (소요시간 : 37분)
    [ ] 9번째 손님 (소요시간 : 25분)
    [ ] 10번째 손님 (소요시간 : 44분)
    [ ] 11번째 손님 (소요시간 : 32분)
    [O] 12번째 손님 (소요시간 : 7분)
    [ ] 13번째 손님 (소요시간 : 41분)
    [ ] 14번째 손님 (소요시간 : 46분)
    [ ] 15번째 손님 (소요시간 : 19분)
    [O] 16번째 손님 (소요시간 : 10분)
    [ ] 17번째 손님 (소요시간 : 27분)
    [ ] 18번째 손님 (소요시간 : 36분)
    [O] 19번째 손님 (소요시간 : 11분)
    [ ] 20번째 손님 (소요시간 : 18분)
    [O] 21번째 손님 (소요시간 : 14분)
    [ ] 22번째 손님 (소요시간 : 37분)
    [O] 23번째 손님 (소요시간 : 5분)
    [ ] 24번째 손님 (소요시간 : 38분)
    [O] 25번째 손님 (소요시간 : 13분)
    [ ] 26번째 손님 (소요시간 : 18분)
    [O] 27번째 손님 (소요시간 : 12분)
    [O] 28번째 손님 (소요시간 : 5분)
    [ ] 29번째 손님 (소요시간 : 18분)
    [ ] 30번째 손님 (소요시간 : 45분)
    [ ] 31번째 손님 (소요시간 : 41분)
    [ ] 32번째 손님 (소요시간 : 46분)
    [ ] 33번째 손님 (소요시간 : 32분)
    [ ] 34번째 손님 (소요시간 : 23분)
    [ ] 35번째 손님 (소요시간 : 23분)
    [ ] 36번째 손님 (소요시간 : 34분)
    [ ] 37번째 손님 (소요시간 : 45분)
    [ ] 38번째 손님 (소요시간 : 39분)
    [ ] 39번째 손님 (소요시간 : 37분)
    [ ] 40번째 손님 (소요시간 : 25분)
    [ ] 41번째 손님 (소요시간 : 47분)
    [ ] 42번째 손님 (소요시간 : 23분)
    [ ] 43번째 손님 (소요시간 : 27분)
    [ ] 44번째 손님 (소요시간 : 49분)
    [O] 45번째 손님 (소요시간 : 6분)
    [O] 46번째 손님 (소요시간 : 8분)
    [ ] 47번째 손님 (소요시간 : 27분)
    [ ] 48번째 손님 (소요시간 : 24분)
    [ ] 49번째 손님 (소요시간 : 46분)
    [O] 50번째 손님 (소요시간 : 12분)
    총 탑승 승객 : 13 분

     

    퀴즈2

    1. `if-elif-else` 구조에서 `else` 블록은 언제 실행될까요?

    앞선 `if` 또는 `elif` 조건들이 모두 거짓일 때

     

    2.`for` 반복문과 `while` 반복문의 주요 차이점은 무엇일까요?

    `for`는 리스트처럼 정해진 대상을 순서대로 반복하고, `while`은 특정 조건이 참인 동안 계속 반복할 때 사용한답니다.

     

    3.반복문 안에서 현재 반복을 '건너뛰고' 다음 반복으로 바로 넘어가게 하는 키워드는 무엇일까요?

    `continue`

     

    4. `while` 반복문이 무한히 실행되는(무한 루프) 가장 흔한 원인은 무엇인가요?

    `while` 문은 조건이 참인 동안 반복하기 때문에, 조건을 변화시키는 코드가 없거나 조건이 항상 참이면 무한히 반복될 수 있어요.

     

    5. 리스트 컴프리헨션을 사용하는 가장 큰 장점은 무엇일까요?

    리스트 컴프리헨션은 기존의 리스트나 반복 가능한 데이터를 바탕으로 새로운 리스트를 만들 때, 코드를 매우 간결하게 작성할 수 있게 해줘요.

    'python' 카테고리의 다른 글

    [python] continue와 break  (0) 2025.05.23
    [python] while  (0) 2025.05.23
    [python] if (조건문)  (0) 2025.05.23
    [python] 자료구조의 변경  (0) 2025.05.23
    [python] 세트  (1) 2025.05.23
Designed by Tistory.