파이썬 300제 131~140 (반복문)

2024. 5. 28. 13:39Python/파이썬 300제

반응형

131. for문의 실행결과를 예측하라.

과일 = ["사과", "귤", "수박"]
for 변수 in 과일:
    print(변수)

-> 리스트에 들어있는 문자열이 한 라인에 하나씩 출력됩니다.

사과
귤
수박

 

132. for문의 실행결과를 예측하라.

과일 = ["사과", "귤", "수박"]
for 변수 in 과일:
  print("#####")

-> 기초문법 배우기-1에서 for문의 핵심은 "들여쓰기된 코드가 자료구조에 저장된 데이터 개수만큼 반복된다"라고 설명했습니다. `과일 = ["사과", "귤", "수박"]` 에는 세 개의 데이터가 저장돼 있으므로 들여쓰기된 `print("####")`코드가 세 번 실행됩니다.

#####
#####
#####

 

133. 다음 for 문과 동일한 기능을 수행하는 코드를 작성하세요.

for 변수 in ["A", "B", "C"]:
  print(변수)

-> 파이썬 인터프리터가 어떤 순서로 코드를 실행하는지를 떠올려 보세요. "변수 바인딩(라인 1) -> 변수 출력 (라인 2)" 과정을 자료구조 데이터 개수 만큼 반복합니다.

변수 = "A"
print(변수)
변수 = "B"
print(변수)
변수 = "C"
print(변수)

간단해서 변수의 바인딩없이 다음과 같이 코드를 작성해도 됩니다. 모두 동일한 결과를 출력합니다.

print("A")
print("B")
print("C")

 

134. for문을 풀어서 동일한 동작을하는 코드를 작성하라.

for 변수 in ["A", "B", "C"]:
  print("출력:", 변수)

->

변수 = "A"
print("출력:", 변수)
변수 = "B"
print("출력:", 변수)
변수 = "C"
print("출력:", 변수)
print("출력:", "A")
print("출력:", "B")
print("출력:", "C")

 

135. for문을 풀어서 동일한 동작을 하는 코드를 작성하라.

for 변수 in ["A", "B", "C"]:
  b = 변수.lower()
  print("변환:", b)

-> 들여쓰기된 코드의 내용은 중요하지 않습니다. 파이썬 인터프리터가 코드를 해석하는 순서를 익히는 것이 중요합니다. 라인1의 for문이 실행되면 변수에 첫 번재 데이터를 바인딩합니다. 그리고 들여쓰기된 라인 2의 코드를 실행합니다.

변수 = "A"
b = 변수.lower()
print("변환:", b)

들여쓰기된 코드의 실행이 끝나면 라인 1로 이동해서 변수에 두 번재 데이터를 바인딩합니다. 그리고 들여쓰기된 코드를 실행합니다.

변수 = "B"
b = 변수.lower()
print("변환:", b)

다음으로 변수 "C"를 바인딩하고 출력하면 되겠죠? for문을 풀어쓴 전체 코드는 다음과 같습니다.

변수 = "A"
b = 변수.lower()
print("변환:", b)
변수 = "B"
b = 변수.lower()
print("변환:", b)
변수 = "C"
b = 변수.lower()
print("변환:", b)

 

136. 다음 코드를 for문으로 작성하라.

변수 = 10
print(변수)
변수 = 20
print(변수)
변수 = 30
print(변수)

-> for문은 동일한 루틴을 반복해서 실행하는 문법이었습니다. 우선 문제에서 변하지 않고 반복되는 코드를 찾아보세요. print(변수) 부분이죠? 변하는 부분은 변수에 값을 대입하는 코드입니다. > 변수 = 10 > **print(변수)** > 변수 = 20 > **print(변수)** > 변수 = 30 > **print(변수)** 반복되는 코드는 들여쓰기로 표현하고 for문에서 변하는 부분을 기술해 줍니다.

for 변수 in [10, 20, 30]:
  print(변수)

다음과 같이 리스트 변수에 데이터를 바인딩하고, 변수를 for문의 자료구조 자리에 넣어줘도 됩니다.

리스트 = [10, 20, 30]
for 변수 in 리스트:
  print(변수)

 

137. 다음 코드를 for문으로 작성하라.

print(10)
print(20)
print(30)

-> 값을 바인딩하는 코드가 생략된 코드입니다. 그렇다해도 for문으로 변경할 수 있어야합니다. 변하는 부분은 값 10, 20, 30입니다. 변하지 않는 부분은 print() 코드입니다.

변수 = 10
print(변수)
변수 = 20
print(변수)
변수 = 30
print(변수)

변하는 부분은 for문과 함께 리스트로 처리하고 변하지 않는 코드는 들여쓰기와 함께 적어줍니다.

for 변수 in [10, 20, 30]:
  print(변수)

 

138. 다음 코드를 for문으로 작성하라.

print(10)
print("-------")
print(20)
print("-------")
print(30)
print("-------")

-> 변하는 값을 변수에 바인딩하고, 변수를 사용해서 나머지 코드를 작성합니다.

변수 = 10
print(변수)
print("-------")

변수 = 20
print(변수)
print("-------")

변수 = 30
print(변수)
print("-------")

변하는 부분은 for문과 함께 리스트로 처리하고 변하지 않는 코드는 들여쓰기와 함께 적어줍니다.

for 변수 in [10, 20, 30]:
  print(변수)
  print("-------")

 

139. 다음 코드를 for문으로 작성하라.

print("++++")
print(10)
print(20)
print(30)

-> `print("++++")` 코드가 함정입니다. 파이썬 for문은 반복되는 코드에만 사용합니다.

print("++++")
for 변수 in [10, 20, 30]:
  print(변수)

 

140. 다음 코드를 for문으로 작성하라.

print("-------")
print("-------")
print("-------")
print("-------")

-> 네 번 반복 출력하는 코드를 작성하는 문제입니다. - 변하는 값 : 없음 - 변하지 않는 코드 : `print("-------")` 지금까지 정리한 내용을 코드로 작성하면 아래와 같습니다. "????" 부분을 어떻게 채워야 할까요?

for 변수 in ?????:
  print("-------")

파이썬 문법에서 강조했던 내용을 떠올려 봅시다. > **파이썬 for문은 들여쓰기된 코드가 자료구조의 데이터 개수만큼 반복된다는 사실이 중요합니다.** 문제에서 원하는 것은 들여쓰기된 코드가 4번 실행되는 것입니다. 그렇다면 for문의 자료구조자리에 데이터가 4개저장된 리스트가 들어가면 어떻게 될까요?

for 변수 in ["가", "나", "다", "라"]:
  print("-------")

변수에 값이 바인딩되지만 사용되지 않을뿐 실행해보면 들여쓰기된 코드가 4번 실행됩니다. 위 예제에서는 자료구조에 "가나다라" 문자열 값을 넣었지만 아래와 같이 1,2,3,4 숫자 값을 넣어도 동일한 동작을 합니다. 자료구조에 네 개의 데이터가 들어있으면 됩니다.

for 변수 in [1, 2, 3, 4]:
  print("-------")
반응형