WeniVooks

검색

견고한 파이썬

연습문제

1번 문제

주어진 코드는 고등어의 재고를 표시하는 간단한 예제입니다. 고등어 가게에서 고등어가 1마리씩 팔리고 있는 상황을 파이썬 프로그램으로 작성하려고 합니다. 재고가 1개 남았을 때 반복문은 멈추어야 합니다. 아래의 코드를 완성하여, 5마리의 고등어부터 1마리의 고등어까지 재고를 표시하세요.

for i in range(5, 0, -1):
    pass
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()}}"
  }
]
[
  "{{repeat(5, 7)}}",
  {
    "_id": "{{objectId()}}",
    "age": "{{integer(20, 40)}}",
    "eyeColor": "{{random(\"blue\", \"brown\", \"green\")}}",
    "name": "{{firstName()}} {{surname()}}",
    "gender": "{{gender()}}"
  }
]
[
  '<iter(5)>',
  {
    _id: '<uuid()>',
    index: '<index()>',
    name: '<name()>',
    email: '<email()>',
    phone: '<phone()>',
    country: '<country()>',
    address: '<address()>',
    job: '<job()>',
  },
];
[
  '<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"
  }
]
[
  {
    "_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('고등어 다 팔렸습니다.')
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}')
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}')
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 = [male_count, female_count]
    colors = ['blue', 'pink']
    plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%')
    plt.axis('equal')
    plt.show()
    import matplotlib.pyplot as plt
     
    labels = ['Male', 'Female']
    sizes = [male_count, female_count]
    colors = ['blue', 'pink']
    plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%')
    plt.axis('equal')
    plt.show()
{"packages":["numpy","pandas","matplotlib","lxml"]}
9.4 반복문 else10장 클래스