품생품사(品生品死)

소프트웨어 품질에 살고 품질에 죽는 그런 평범한 일상 블로그

TESTING/PROGREMING

[파이썬 코딩 - Chap.14] 실습 조금 생각하는 환전 서비스 문제 풀어보기

품생품사(品生品死) 2020. 11. 23. 06:00
반응형

파이썬 예제 : 환전 서비스

우리가 해야 할 일은 크게 두 가지입니다.

  1. 함수 작성
  2. 반복문을 통해 리스트 요소들 변환

문제

1. 함수 작성

먼저 한국 원화를 미국 달러로 변환해 주는 krw_to_usd 함수,

그리고 미국 달러를 일본 엔화로 변환해 주는 usd_to_jpy 함수를 써야 하는데요.

krw_to_usd 함수는 파라미터로 원화 krw을 받아서 변환된 미국 달러 액수를 리턴해 줍니다.

마찬가지로 usd_to_jpy 함수는 파라미터로 달러 usd를 받아서 변환된 일본 엔화 액수를 리턴해 주는 거죠.

참고로 환율은 1달러에 1,000원, 그리고 1,000엔에 8달러라고 가정합니다.

 

2. 반복문을 통해 리스트 요소들 변환

반복문을 사용해서 리스트의 요소들을 각각 다른 화폐로 변환해야 하는데요.

그 과정에서 krw_to_usd 함수와 usd_to_jpy 함수를 활용하면 되겠죠?

위 코드를 완성하고 실행하면 아래와 같이 출력됩니다.

 

출력 예시

한국 화폐: [34000, 13000, 5000, 21000, 1000, 2000, 8000, 3000]
미국 화폐: [34.0, 13.0, 5.0, 21.0, 1.0, 2.0, 8.0, 3.0]
일본 화폐: [4250.0, 1625.0, 625.0, 2625.0, 125.0, 250.0, 1000.0, 375.0]

 

힌트

1. krw_to_usd 함수부터 정의합시다. 이 함수는 원화를 달러로 변환하는 역할을 하는데요. 1,000원은 1달러와 동일합니다.

# 원(₩)에서 달러($)로 변환하는 함수
def krw_to_usd(krw):
    return krw / 1000  # 1,000원 당 1달러

usd_to_jpy는 어떻게 할 수 있을까요?

 

2. usd_to_jpy는 이렇게 쓸 수 있습니다.

# 달러($)에서 엔(¥)로 변환하는 함수
def usd_to_jpy(usd):
    return usd / 8 * 1000

 

3. 우리가 정의한 함수를 이용해서 리스트의 원소를 어떻게 수정할 수 있을까요? 예를 하나 들어 봅시다.

인덱스 2의 값을 원화에서 달러로 변환하기 위해서는 이렇게 하면 됩니다.

prices[2] = krw_to_usd(prices[2])

만약 변환된 달러를 정수형로 딱 떨어지게 하고 싶으면 이렇게 하면 되고요,

prices[2] = int(krw_to_usd(prices[2]))

소수점 첫째 자리까지 반올림하고 싶으면 이렇게 하면 됩니다.

prices[2] = round(krw_to_usd(prices[2]), 1)

 

4. 우리가 정의한 함수들과 while 반복문을 사용해서, 리스트의 요소들을 각각 다른 화폐로 변환을 해야 하는데요. 반복문은 인덱스 0부터 인덱스 len(prices) - 1까지 돌면 됩니다.

 

정답

main.py
# 원화(₩)에서 달러($)로 변환하는 함수
def krw_to_usd(krw):
    return krw / 1000

# 달러($)에서 엔화(¥)로 변환하는 함수
def usd_to_jpy(usd):
    return usd / 8 * 1000


# 원화(₩)으로 각각 얼마인가요?
amounts = [34000, 13000, 5000, 21000, 1000, 2000, 8000, 3000]
print("한국 화폐: " + str(amounts))
 
i = 0
while i < len(amounts):
    amounts[i] = round(krw_to_usd(amounts[i]), 1)
    i += 1

# 달러($)로 각각 얼마인가요?
print("미국 화폐: " + str(amounts))

# amounts를 달러($)에서 엔화(¥)으로 변환하기
# 코드를 입력하세요.

j = 0
while j < len(amounts):
    amounts[j] = round(usd_to_jpy(amounts[j]), 1)
    j += 1

# 엔화(¥)으로 각각 얼마인가요?
print("일본 화폐: " + str(amounts))

 

해설

원화(₩)에서 달러($)로

krw_to_usd 함수부터 정의합시다. 이 함수는 원화를 달러로 변환하는 역할을 하는데요. 1,000원은 1달러와 동일합니다.

# 원화(₩)에서 달러($)로 변환하는 함수
def krw_to_usd(krw):
    return krw / 1000  # 1,000원 당 1달러

달러($)에서 엔화(¥)로

마찬가지로 usd_to_jpy는 이렇게 쓸 수 있습니다.

# 달러($)에서 엔화(¥)로 변환하는 함수
def usd_to_jpy(usd):
    return usd / 8 * 1000

함수 이용하기

우리가 정의한 함수를 이용해서 리스트의 원소를 어떻게 수정할 수 있을까요? 예를 하나 들어 봅시다.

인덱스 2의 값을 원화에서 달러로 변환하기 위해서는 이렇게 하면 됩니다.

prices[2] = krw_to_usd(prices[2])
만약 변환된 달러를 정수형로 딱 떨어지게 하고 싶으면 이렇게 하면 되고,

prices[2] = int(krw_to_usd(prices[2]))
소수점 첫째 자리까지 반올림하고 싶으면 이렇게 하면 됩니다.

prices[2] = round(krw_to_usd(prices[2]), 1)

반복문으로 모든 원소 변환하기

우리가 정의한 함수들과 while 반복문을 사용해서, 리스트의 요소들을 각각 다른 화폐로 변환해야 하는데요. 반복문은 인덱스 0부터 인덱스 len(prices) - 1까지 돌면 됩니다.

 

원화(₩)에서 달러($)로

# prices를 원화(₩)에서 달러($)로 변환하기
i = 0
while i < len(prices):
    prices[i] = krw_to_usd(prices[i])
    i += 1

# 달러($)로 각각 얼마인가요?
print("미국 화폐: " + str(prices))

달러($)에서 엔화(¥)로

# prices를 달러($)에서 엔화(¥)로 변환하기
i = 0
while i < len(prices):
    prices[i] = usd_to_jpy(prices[i])
    i += 1

# 엔화(¥)로 각각 얼마인가요?
print("일본 화폐: " + str(prices))

 

Related References

 

코딩이 처음이라면, 코드잇

월 3만원대로 Python, JavaScript, HTML/CSS, Java 등 1,600개 이상 프로그래밍 강의를 무제한 수강하세요

www.codeit.kr:443

This is coding_000
PYTHON 프로그래핑

요약 : sparta coding club, 스파르타 코딩, 코드잇, 노마드 코더, 프로그래밍, 직장인 코딩, 내일 배움 카드 코딩, 밀크티 코딩, 초등 코딩, 아이스크림 코딩, 코딩 소프트웨어, 파이썬 국비 지원, 파이썬 교육

728x90
반응형