Python/개념익히기

for 반복문

ADELA_J 2023. 3. 27. 23:22

A. for 반복자/코드 in 반복할 수 있는 것(문자열, 리스트, 딕셔너리, 범위 etc)

#리스트를 선언합니다.
list_a = [273, 32, 103, 57, 52]

#리스트에 반복문을 적용합니다.
for item in list_a:
	#출력합니다
    print(item)

   ① list_a에 있는(in) 요소들이 하나하나 item으로 입력 (for 반복문이니까 하나하나 모두)

   ② print(item)이 있으니 for문의 item에 입력된 요소가 하나씩 출력됨

   ③ 반복 > print 가 끝나면 for문으로 다시가서 list_a의 요소가 item으로 되고 또 출력하고..

for char in "안녕하세요":
	print("-", char)

▶ 요소 하나하나씩 차례차례 출력됨. 

 

 

 

 

 

  B. 중첩 반복문 : 반복문을 여러 겹 사용하는

    b-1. 1차원 리스트 : 한 겹으로 감싸진 리스트 ex. [1,2,3]

    b-2. 2차원 리스트 :  두 겹으로 감싸진 리스트 ex. [[1,2,3], [4,5,6]]

    b-3. n차원 리스트 : 그 외에도 n겹으로 여러번 중첩 가능

list_two = [
    [1,2,3],
    [4,5,6,7],
    [8,9]
]

for ite in list_two:
    print(ite)

2차원 리스트에 반복문 1번 써보기

list_two = [
    [1,2,3],
    [4,5,6,7],
    [8,9]
]

for ite in list_two:
    for item in ite:
        print(item)
        print(ite)

▶ 2차원 리스트에 반복문 2번 이용하기

[1,2,3] > 1요소 /  [4,5,6,7] > 2요소 / [8,9] > 3요소

요소 전체(list_two)에서 하나하나 ite 불러옴

그 불러온 ite([1,2,3], [4,5,6,7], [8,9])에서 

하나하나 item에서 불러옴.

큰 요소([1,2,3])에서 작은요소([1] [2] [3])로 하나하나씩 부르고

끝나면 다시 위로 반복 X 끝날때까지 반복

 

 

 

 

 

  C. *리스트 => 리스트[0], 리스트[1], .... / 전개연산자

       리스트의 요소들을 다 나열해준거

     c-1. 리스트 내부에서 사용할 때 : 비파괴적으로 리스트에 요소를 추가할 수 있음. 

   

#append() 함수를 사용할때
a = [1,2,3,4]
a.append(5)
print(a)

print()

#전개 연산자를 사용한 경우
b = [1,2,3,4]
c = [*b, 5]
print(b)
print(c)

    c-2. 함수 매개변수 위치에 사용하는 경우 : 리스트 요소 하나하나 입력하는 것처럼 전개됨

      ▶ *a 만 사용하지 않도록 조심. 이유는 뒤의 매개변수와 retrun을 정리할때..☆

 

 

▶ examples

   ▷ 시험성적

point = [92, 38, 72, 48, 86]

for p_ass in point:
    if p_ass >= 60:
        print(p_ass, "점은 Pass")
    else:
        print(p_ass, "점은 False")

 

#p214 문제 2번
print("문제 2번 입니다-----")
numbers = [273, 103, 5, 32, 65, 9, 72, 800, 99]

for number in numbers:
    if number > 100:
        print("-100 이상의 수:", number)

#p214 문제 3번
print()
print("문제 3번 입니다-----")
numbers = [273, 103, 5, 32, 65, 9, 72, 800, 99]

#문제3번 왼쪽 실행결과 코드
for number in numbers:
    if number // 2 == 0:        #조건문 : 2로 나눈 후 나머지가 0일 경우
        print(number, "는 짝수입니다.")

    else :
        print(number, "는 홀수입니다.")

#문제3번 오른쪽 실행결과 코드
for number in numbers:
    if number >= 100 :
        print(number,"는 3 자릿수입니다.")
    elif 100 > number >=10 :
        print(number,"는 2 자릿수입니다.")
    else:
        print(number,"는 1 자릿수입니다.")

#p.215 문제 4번
numbers = [1,2,3,4,5,6,7,8,9]
output = [[], [], []]

for number in numbers:
    output[(number+2) %3].append(number)

print(output)

#p.215 문제 5번
num = [1,2,3,4,5,6,7,8,9]

for i in range(0, len(num) //2):
    #j가 1,3,5,7이 나오려면
    #어떤 식을 사용해야 할까요?
    j = (i*2) +1 
    print(f"i = {i}, j = {j}")
    num[j] = num[j] **2

print(num)