연습문제
이 연습문제들은 for문, while문, break, continue, 반복문 else 등 반복문의 다양한 활용법을 다룹니다. 직접 코드를 작성하며 반복문 개념을 익혀보세요.
1번 문제
주어진 코드는 고등어의 재고를 표시하는 간단한 예제입니다. 고등어 가게에서 고등어가 1마리씩 팔리고 있는 상황을 파이썬 프로그램으로 작성하려고 합니다. 재고가 1개 남았을 때 반복문은 멈추어야 합니다. 아래의 코드를 완성하여, 5마리의 고등어부터 1마리의 고등어까지 재고를 표시하세요.
for i in range(5, 0, -1):
pass
2번 문제
아래 서비스에서 모의 회원 데이터를 가져와 평균나이와 남녀 성비를 계산하는 코드를 작성해주세요. 2개의 서비스 중 택 1하시면 됩니다.
[
"{{repeat(5, 7)}}",
{
"_id": "{{objectId()}}",
"age": "{{integer(20, 40)}}",
"eyeColor": "{{random(\"blue\", \"brown\", \"green\")}}",
"name": "{{firstName()}} {{surname()}}",
"gender": "{{gender()}}"
}
]
-
한국어 데이터
JSON Generator
[
'<iter(5)>',
{
_id: '<uuid()>',
index: '<index()>',
name: '<name()>',
email: '<email()>',
phone: '<phone()>',
country: '<country()>',
address: '<address()>',
job: '<job()>',
},
];
여기에서 '모의 회원 데이터'를 가져와서 나이의 평균과 성별의 구성비를 구하는 문제를 풀어보도록 하겠습니다. 생성된 데이터는 아래와 같습니다. 다른 데이터여도 괜찮습니다.
[
{
"_id": "6019fd4354979ca26b8f91dc",
"age": 26,
"eyeColor": "green",
"name": "Bender Allen",
"gender": "male"
},
{
"_id": "6019fd43db2951868889a0b4",
"age": 27,
"eyeColor": "blue",
"name": "Jacobs Golden",
"gender": "male"
},
{
"_id": "6019fd438c0bf8e775c28536",
"age": 27,
"eyeColor": "brown",
"name": "Grimes Oneal",
"gender": "male"
},
{
"_id": "6019fd43b68a7fd8b081ab26",
"age": 40,
"eyeColor": "blue",
"name": "Melissa Joyce",
"gender": "female"
},
{
"_id": "6019fd436c1edc4757aabb9d",
"age": 32,
"eyeColor": "blue",
"name": "Malone Bush",
"gender": "male"
},
{
"_id": "6019fd438eaf753918f55226",
"age": 34,
"eyeColor": "green",
"name": "Davenport Hyde",
"gender": "male"
},
{
"_id": "6019fd43c35929ff95004109",
"age": 20,
"eyeColor": "blue",
"name": "Shauna Blevins",
"gender": "female"
}
]
답안
for i in range(5, 0, -1):
print('고등어 ', i, ' 개 남았습니다.')
if i == 1:
break
else:
print('고등어 다 팔렸습니다.')
import json
with open('data.json') as f:
data = json.load(f)
total_age = 0
for member in data:
total_age += member['age']
average_age = total_age / len(data)
print(f'회원들의 age 평균: {average_age}')
num_male = 0
num_female = 0
for member in data:
if member['gender'] == 'male':
num_male += 1
else:
num_female += 1
gender_ratio = {
'male': num_male / len(data),
'female': num_female / len(data)
}
print('회원들의 남녀 성비:')
for gender, ratio in gender_ratio.items():
print(f'{gender}: {ratio}')
-
추가 시각화 코드
import matplotlib.pyplot as plt labels = ['Male', 'Female'] sizes = [num_male, num_female] colors = ['blue', 'pink'] plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%') plt.axis('equal') plt.show()