본문 바로가기
Python/파이썬 300제

파이썬 300제 141~150 (반복문)

by Maccrey 2024. 6. 6.
반응형

141. 다음과 같이 판매가가 저장된 리스트가 있을 때 부가세가 포함된 가격을 for 문을 사용해서 화면에 출력하라. 단 부가세는 10원으로 가정한다.

리스트 = [100, 200, 300]
110
210
310

-> 우선, for문을 사용하지 않고 모든 값에 10을 더하는 코드를 작성해 봅시다.

변수 = 100
print(변수 + 10)
변수 = 200
print(변수 + 10)
변수 = 300
print(변수 + 10)

변하는 값은 for문의 자료구조 자리에, 변하지 않는 코드는 들여쓰기 후에 작성합니다.

리스트 = [100, 200, 300]
for 변수 in 리스트:
  print(변수 + 10)

파이썬 인터프리터가 코드를 실행하는 순서를 익혀서, 한 번에 for문으로 작성할 수 있어야합니다. (100 바인딩 - 들여쓰기 코드 실행) (200 바인딩 - 들여쓰기 코드 실행) (300 바인딩 - 들여쓰기 코드 실행)

 

142. for 문을 사용해서 리스트에 저장된 값을 다음과 같이 출력하라.

리스트 = ["김밥", "라면", "튀김"]
오늘의 메뉴: 김밥
오늘의 메뉴: 라면
오늘의 메뉴: 튀김

-> for문을 사용하지 않고 문자열을 출력하는 코드를 작성해 봅시다. 011번 문제와는 리스트안의 데이터 타입이 문자열이라는 것이 차이점입니다. 문자열의 덧셈은 두 문자열을 이어붙입니다.

메뉴 = "김밥"
print("오늘의 메뉴: " + 메뉴)
메뉴 = "라면"
print("오늘의 메뉴: " + 메뉴)
메뉴 = "튀김"
print("오늘의 메뉴: " + 메뉴)

변하는 값은 for문의 자료구조 자리에, 변하지 않는 코드는 들여쓰기 후에 작성합니다.

리스트 = ["김밥", "라면", "튀김"]
for 메뉴 in 리스트:
  print("오늘의 메뉴: " + 메뉴)

문자열 덧셈 대신 print() 함수의 기능을 사용해서 다음과 같이 코드를 작성해도 좋습니다. print() 함수는 입력한 값을 한칸의 공백과 함께 이어붙여 출력합니다.

리스트 = ["김밥", "라면", "튀김"]
for 메뉴 in 리스트:
  print("오늘의 메뉴:", 메뉴)

 

143. 리스트에 주식 종목이름이 저장돼 있다.

리스트 = ["SK하이닉스", "삼성전자", "LG전자"]

저장된 문자열의 길이를 다음과 같이 출력하라.

6
4
4

-> 문자열의 길이를 구하는 함수 len()을 사용합니다.

리스트 = ["SK하이닉스", "삼성전자", "LG전자"]
for 종목명 in 리스트:
  길이 = len(종목명)
  print(길이)

간단하기 때문에 한줄로 표현해도 좋습니다.

리스트 = ["SK하이닉스", "삼성전자", "LG전자"]
for 종목명 in 리스트:
  print(len(종목명))

 

144. 리스트에는 동물이름이 문자열로 저장돼 있다.

리스트 = ['dog', 'cat', 'parrot']

동물 이름과 글자수를 다음과 같이 출력하라.

dog 3
cat 3
parrot 6

-> 리스트에는 동물이름이 문자열로 저장돼 있다.

리스트 = ['dog', 'cat', 'parrot']
for 이름 in 리스트:
  print(이름, len(이름))

 

145. 리스트에 동물 이름 저장돼 있다.

리스트 = ['dog', 'cat', 'parrot']

for문을 사용해서 동물 이름의 첫 글자만 출력하라.

d
c
p

-> 어렵게 느껴진다면 for문을 사용하지 않고 코드를 작성해봅시다. 바인딩된 문자열의 인덱싱을 사용해서 첫 글자를 화면에 출력합니다.

이름 = "dog"
print(이름[0])
변수 = "cat"
print(이름[0])
변수 = "parrot"
print(이름[0])

변하는 값은 for문의 자료구조 자리에, 변하지 않는 코드는 들여쓰기 후에 작성합니다. 쉽죠?

리스트 = ['dog', 'cat', 'parrot']
for 이름 in 리스트:
  print(이름[0])

 

146. 리스트에는 세 개의 숫자가 바인딩돼 있다.

리스트 = [1, 2, 3]

for문을 사용해서 다음과 같이 출력하라.

3 x 1
3 x 2
3 x 3

-> 012 문제를 풀었다면 충분히 응용할 수 있어야합니다. "3 x " 문자열과 숫자를 이어붙여 출력하면됩니다. 다만 변수에 바인딩된 값이 숫자이기 때문에 문자로 변환 후에 문자열 연산을 사용할 수 있습니다.

리스트 = [1, 2, 3]
for 변수 in 리스트:
  print("3 x " + str(변수))

혹은 print() 함수가 제공하는 기능을 사용할 수 있습니다.

리스트 = [1, 2, 3]
for 변수 in 리스트:
  print("3 x", 변수)

 

147. 리스트에는 세 개의 숫자가 바인딩돼 있다.

리스트 = [1, 2, 3]

for문을 사용해서 다음과 같이 출력하라.

3 x 1 = 3
3 x 2 = 6
3 x 3 = 9

-> 어려워 보인다면, for문을 사용하지 않고 풀어서 코드를 작성해야 합니다. 핵심은 print() 함수에서 `3 * 변수` 부분입니다. 변수를 활용해서 원하는 값을 만들어 냈습니다.

변수 = 1
print("3 x ", 변수, "=", 3 * 변수)
변수 = 2
print("3 x ", 변수, "=", 3 * 변수)
변수 = 2
print("3 x ", 변수, "=", 3 * 변수)

값만 변하고 있기 때문에 쉽게 for문으로 작성할 수 있습니다.

리스트 = [1, 2, 3]
for 변수 in 리스트:
  print("3 x ", 변수, "=", 3 * 변수)

문자열 함수를 활용하면 코드가 더욱 읽기 쉬워집니다.

리스트 = [1, 2, 3]
for 변수 in 리스트:
  print("3 x {} = {}".format(변수, 3 * 변수))

 

148. 리스트에는 네 개의 문자열이 바인딩돼 있다.

리스트 = ["가", "나", "다", "라"]

for문을 사용해서 다음과 같이 출력하라.

나
다
라

-> 리스트의 슬라이싱을 사용해서 일부 데이터를 "나다라" 변수에 바인딩합니다. "나다라"에 바인딩 된 리스트로 for문을 사용하면 원하는 결과를 얻을 수 있습니다.

리스트 = ["가", "나", "다", "라"]
나다라 = 리스트[1:]
for 변수 in 나다라:
  print(변수)

리스트를 슬라이싱한 결과를 "리스트" 변수에 업데이트 할 수도있습니다. 전체 값을 출력하는 코드에서 for문의 코드 변경없이 추가 코드만 한줄 작성합니다.

리스트 = ["가", "나", "다", "라"]
리스트 = 리스트[1:]
for 변수 in 리스트:
  print(변수)

간단하니 for문 자료구조 자리에 슬라이싱 코드를 한번에 작성할 수도있습니다.

리스트 = ["가", "나", "다", "라"]
for 변수 in 리스트[1:]:
  print(변수)

세 개의 코드는 모두 동일한 동작을 하는데, 되도록이면 간단하게 쓰는게 좋겠죠? 세 번째 방법을 눈에 익혀 두세요.

 

149. 리스트에는 네 개의 문자열이 바인딩돼 있다.

리스트 = ["가", "나", "다", "라"]

for문을 사용해서 다음과 같이 출력하라.

가
다

-> 리스트 슬라이싱에서 `[시작:끝:증감폭] ` 세번째 값은 값을 가져오는 단위를 의미했습니다. 증감폭을 2로 설정해서 "가"와 "다" 값만 슬라이싱합니다.

리스트 = ["가", "나", "다", "라"]
for 변수 in 리스트[: :2]:
  print(변수)

 

150. 리스트에는 네 개의 문자열이 바인딩돼 있다.

리스트 = ["가", "나", "다", "라"]

for문을 사용해서 다음과 같이 출력하라.

라
다
나
가

-> 증감폭을 음수로 설정하면 끝에서 앞방향으로 값을 슬라이싱합니다.

리스트 = ["가", "나", "다", "라"]
for 변수 in 리스트[: :-1]:
  print(변수)
반응형