본문 바로가기
파이썬/알고리즘

for문 정리, 예시[파이썬 독학]

by davi_kr 2023. 3. 19.

목차

    반응형

    파이썬에서는 for문을 작성할 때, for ~ in ~:과 같은 형태로 적습니다.

    for 변수 in 수행할 횟수:
    	실행할 코드
    
    #변수가 없다면
    for _ in 수행할 횟수:
    	실행할 코드
    예시
    random_numbers =  [random.randint(1, 100) for _ in range(10)]
    
    max_num = random_numbers[0]
    min_num = random_numbers[0]
    
    for num in random_numbers:
        if num > max_num:
            max_num = num
        if num < min_num:
            min_num = num
    
    print(sorted(random_numbers))
    print("Maximum number:", max_num)
    print("Minimum number:", min_num)

    위 코드는 다음과 같은 작업을 수행합니다

    1. random_numbers 변수에 1에서 100 사이의 랜덤한 정수 10개를 생성하여 리스트로 저장합니다.
    2. max_num과 min_num 변수를 리스트의 첫 번째 원소로 초기화합니다.
    3. for 루프를 사용하여 random_numbers 리스트의 모든 원소를 반복하면서, 각 원소가 현재의 최대값 또는 최소값보다 크거나 작은 경우 해당 값을 max_num 또는 min_num으로 업데이트합니다. (여기선 반복 횟수가 리스트에 들어있는 값들의 갯수로 볼 수 있습니다.)
    4. sorted() 함수를 사용하여 random_numbers 리스트를 오름차순으로 정렬합니다.
    5. 최대값과 최소값을 출력합니다.

    , 코드는 1에서 100 사이의 랜덤한 정수 10개를 생성하고, 중에서 최대값과 최소값을 찾아서 출력합니다. 또한, 생성된 숫자들을 오름차순으로 정렬하여 출력합니다. 코드를 실행하면 매번 다른 10개의 랜덤한 숫자가 생성되므로, 출력 결과는 실행할 때마다 다를 있습니다.

     

    수행할 횟수 관련

    편의를 위해 수행할 횟수로 적었는데 여러군데를 찾아보니 정확히는 sequence가 들어와야 한다고 합니다.

    수행할 횟수 자리에 그냥 숫자 2를 넣고 돌리면 에러를 반환합니다.

    'int' object is not iterable라고 나오는데 여기서 iterable은 반복할 수 있는이라는 의미입니다.

    즉, sequence 자리에는 단순한 숫자가 아닌 반복할 수 있는 구간으로 표현이 되어야 합니다.

     

    1️⃣ range() 함수
    range() 함수는 정수 범위를 생성하는 함수입니다. range() 함수를 사용하면 for 루프에서 정해진 범위만큼 반복할 있습니다

    range() 함수는 아래와 같은 방식으로 사용할 수 있습니다.

    #끝값
    range(2)
    #output: range(0, 2)
    list(range(2))
    #output: [0, 1]
    
    #시작값, 끝값
    range(10,20)
    #output: range(10, 20)
    list(range(10,20))
    #output: [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
    
    #시작값, 끝값, 간격
    range(10,30,2)
    #output: range(10, 20, 2)
    list(range(10,30,2))
    #output: [10, 12, 14, 16, 18, 20, 22, 24, 26, 28]

    range 함수에서 마지막 값은 끝값 -1의 값으로 보면 됩니다.

     

    2️⃣ enumerate() 함수

    enumerate() 함수는 시퀀스 자료형의 요소에 대해 인덱스와 값을 함께 반환하는 함수입니다. enumerate() 함수를 사용하면 for 루프에서 인덱스와 값을 동시에 사용할 있습니다. enumerate() 함수는 다음과 같이 사용합니다.

    my_list = ["apple", "banana", "orange", "strawberry", 'blueberry','lemon']
    for i, value in enumerate(my_list):
        print(i, value)

    if문으로 중간에 for문 강제 종료하기(break 사용)

    my_list = ["apple", "banana", "orange", "strawberry", 'blueberry','lemon']
    for i, value in enumerate(my_list):
        if value == "strawberry": 
            print(f"{i+1}번째에서 {value}가 나와서 for문을 종료합니다!") 
            break
        print(i+1, value)

    value 값을 갖고 조건을 확인해서 코드를 실행하고 싶을 때 유용합니다.

     

    3️⃣ zip() 함수

    zip() 함수는 이상의 시퀀스를 묶어서 함께 처리할 있는 함수입니다. zip() 함수는 다음과 같이 사용합니다.

    lst = []
    list1 = ["서울","부산","대구"]
    list2 = ["apple", "banana", "orange"]
    for location, fruit in zip(list1, list2):
        lst.append([location,fruit])
    print(lst)

    zip 함수는 2개 이상의 리스트를 함께 묶어서 처리하고 싶을 때, 사용하면 좋습니다. 위 예시처럼 반복문을 돌면서 2개의 리스트를 하나의 리스트로 합쳐줄 수도 있습니다.

    반응형

    댓글