━━━━ ◇ ━━━━
파이썬/코드잇

Python 36. 리스트 실습 [2] with 코드잇

728x90
반응형

해당 포스팅은 코드잇 복습을 위한 포스팅입니다.
문제 발생 시 즉시 비공개 처리 하겠습니다.

실습 3

price = [34000, 13000, 5000, 21000, 1000, 2000, 8000, 3000]

가격의 단위는 모두 원화이다. 이 물건들의 가격을 미국달러로 하면 얼마일지, 그리고 일본 엔화로 하면 얼마일지 확인해 보려고 한다. 

 

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 함수를 활용하자. 

 

 

실행결과

 

내 코드

def krw_to_usd(krw):
    return (krw / 1000)

price = [34000, 13000, 5000, 21000, 1000, 2000, 8000, 3000]
print("한국 화폐: {}".format(price))

i = 0
while i < len(price):
    price[i] = round(krw_to_usd(price[i]), 1)
    i += 1
print("미국 화폐: {}".format(price))

def usd_to_jpy(usd):
    return usd * (1000 / 8)

i = 0
while i < len(price):
    price[i] = round(usd_to_jpy(price[i]), 1)
    i += 1

print("일본 화폐: {}".format(price))


#실행결과
한국 화폐: [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]

모범답안

 


실습 4

1. numbers라는 빈 리스트를 만들고 리스트를 출력한다.

2. append를 이용해서 numbers에 1, 7, 3, 6, 5, 2, 13, 14를 순서대로 추가한다. 그 후 리스트를 출력한다.

3. numbers 리스트의 원소들 중 홀수는 모두 제거한다. 그 후 다시 리스트를 출력한다. 

4. numbers 리스트의 인덱스 0자리에 20이라는 수를 삽입한 후 출력한다. 

5. numbers 리스트를 정렬한 후 출력한다. 

 

실행결과

 

내 코드

numbers = []
print(numbers)


numbers.append(1)
numbers.append(7)
numbers.append(3)
numbers.append(6)
numbers.append(5)
numbers.append(2)
numbers.append(13)
numbers.append(14)
print(numbers)


a = []
i = 0
while i < len(numbers):
    if numbers[i] % 2 == 0:
        a.append(numbers[i])
    i += 1
print(a)


a.insert(0, 20)
print(a)


new_list = sorted(a)
print(new_list)

#실행결과
[]
[1, 7, 3, 6, 5, 2, 13, 14]
[6, 2, 14]
[20, 6, 2, 14]
[2, 6, 14, 20]

모범답안

3번 리스트 홀수 제거에서는,

 어떤 요소가 홀수여서 제거될 경우, 그 뒤에 있는 요소들이 모두 하나씩 앞당겨진다. 예를 들어, number[3]이 홀수여서 제거되면, 4번 인덱스에 있던 요소는 3번 인덱스로 가고 5번 인덱스에 있던 요소는 4번 인덱스로 간다.

 

현재 i1씩 늘려주며 while 반복문을 돌고 있는데, 홀수인 요소를 제거하고 나서는 i를 늘리면 안된다. i를 늘리면 요소 하나를 검토하지 않고 건너뛰기 때문이다.

수행 부분에서 경우를 나눠서 동작을 다르게 하면 된다. 홀수 요소를 찾으면 그 요소를 제거하고, 짝수요소를 찾으면 i를 늘려야한다.


 

728x90
반응형
COMMENT