배운 것/Python

[기초 문법] 함수 속 변수 정의

MOR1ATY 2022. 1. 7. 10:21

 

다음과 같이 함수를 정의할 때 지정해준 변수(아래에선 각각 krw과 usd)외에 다른 변수를 정의하면,

 

1
2
3
4
5
6
7
8
# 원화(₩)에서 달러($)로 변환하는 함수
def krw_to_usd(krw):
    return usd = krw / 1000
 
 
# 달러($)에서 엔화(¥)로 변환하는 함수
def usd_to_jpy(usd):
    return jpy = usd * (1000/8)
cs

 

이렇게 오류가 발생한다.

 

 

원화에서 달러로, 달러에서 엔화로 변환하려고 하다보니 자연스럽게 usd와 jpy라는 변수를 정의하게 됐는데 저렇게 하는 것이 아니라 아래와 같이

 

1
2
3
4
5
6
7
8
# 원화(₩)에서 달러($)로 변환하는 함수
def krw_to_usd(krw):
    return krw / 1000
 
 
# 달러($)에서 엔화(¥)로 변환하는 함수
def usd_to_jpy(usd):
    return usd * (1000/8)
cs

 

지정된 변수만을 통해, 값을 return 해주도록 함수를 정의하고 이후 return된 값이 각각 usd, jpy라고 머리로만 생각하면 된다. 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 원화(₩)에서 달러($)로 변환하는 함수
def krw_to_usd(krw):
    return krw / 1000
 
 
# 달러($)에서 엔화(¥)로 변환하는 함수
def usd_to_jpy(usd):
    return usd * (1000/8)
prices = [34000130005000210001000200080003000]
print("한국 화폐: " + str(prices))
 
 
# prices를 원화(₩)에서 달러($)로 변환하기
= 0
while i < len(prices) : 
    krw_to_usd(prices[i])
    prices[i] = round(krw_to_usd(prices[i]))
    i += 1
print("미국 화폐: " + str(prices))
 
 
# prices를 달러($)에서 엔화(¥)으로 변환하기
= 0
while i < len(prices) : 
    usd_to_jpy(prices[i])
    prices[i] = round(usd_to_jpy(prices[i]))
    i += 1
print("일본 화폐: " + str(prices))
cs

 

실제로 완성된 코드에서는 usd와 jpy가 변수로 정의되지 않는다.