return값으로 입력 파라메터값 역순 출력하는 reverse함수

def reverse(x,y,z):
    return z,y,x


ret = reverse(1,2,3)
print(ret)

r1,r2,r3 = reverse('a','b','c')
print(r1,r2,r3)

(3, 2, 1)

c b a

 

 

 

입력 파라메터 순서와 상관없이, 해당 파라메터=값 형태로 입력을 넣어줄 수 도 있다.

하지만, 입력 파라메터와 함수내에서 사용하는 변수명이 같아야 하므로(?)

불편하다 안쓴다.

def calc(x,y,z):
    print(x)
    print(y)
    print(z)
    return x+y+z


print(calc(y=20,x=10,z=30))

10

20

30

60

 

 

이 함수를 실행하면 오류가 나타난다.

왜일까?

이유는 함수 내에서 정의되어진 변수 result는 그 함수 내에서만 작동하고 함수가 끝나면 메모리를 잃게 되어

변수가 사라진다. 그래서 print(result)문을 실행하면 name 'result' is not defined라고 오류문을 내뱉는다.

def calculate_area(radius):
    result = 3.14 * radius **2
    return result

r = float(input('원의 반지름: '))
area = calculate_area(r)
print(result)

지역변수, 전역변수 개념을 확고히 하자.

r은 지역변수로서, 함수 내에 r을 활용하여도 전역변수 r에 할당된 값이 작용한다.

def calculate_area():
    result = 3.14*r**2
    return result

r = float(input('원의 반지름: '))
area = calculate_area()
print(area)

 

 

para_func 함수는 3개의 파라미터를 입력받는다. 여기서 주목할 것이,

v3 = 0으로 인해 v3의 default값이 0으로 주어진다.

따라서, para_func(10,20)으로 입력해도 오류가 나지 않는다. why?

para_func(10,20)은 para_func(10,20,0)으로 작동하기 때문이다.

para_func(10,20,30)을 해주면 v3=0의 default값에 v3 = 30이 들어간다.

def para_func(v1,v2,v3=0):
    result = 0
    result = v1 + v2 + v3
    return result


##전역 변수 선언 부분 ##
hap = 0

##메인 코드 부분 ##
hap = para_func(10,20)
print(hap)
hap = para_func(10,20,30)
print(hap)

*para를 활용하면, 파라미터 값 갯수 제한이 없어진다. 1개만 넣어도 되고, 2개, 3개 , etc... 

넣는 만큼 파라미터로써 작용할 수 있도록 *를 붙여준다.

여기서 주목할 것이, *para에서 para는 튜플 형태로 들어가게된다.예를들어, 

para_func(10,20)을 하게 되면 para = (10,20) tuple형식이 된다.

def para_func(*para):
    result = 0
    for num in para:
        result += num
    print(type(para))
    return result


##전역 변수 선언 부분 ##
hap = 0

##메인 코드 부분 ##
hap = para_func(10,20)
print(hap)
hap = para_func(10,20,30)
print(hap)

for 문은 in 뒤의 값을 iterating하는 반복문이다.

in 뒤에는 다양한 자료형이 올 수 있고, 다음과 같이 string을 넣어주면, string을 값 하나하나씩

뽑아서 보여준다. string 자체를 넣어도 되고, string이 할당된 변수를 입력해주어도 상관없다.

for x in 'hello python':
    print(x)
    
aStr = 'hello python'
for ch in aStr:
    print(ch)

for 문에서 가장 많이 사용하는 것이 range함수이다.

range(start,end,step)순으로 입력하면 되며, start, step은 각각 0,1의 default값을 갖는다.

예를들어, range(0,10,1) = range(0,10) = range(10)이다.

for i in list(range(0,11)):
    print(i)
for i in range(0,11):
    print(i)

'Data Anaylsis > python basic' 카테고리의 다른 글

정규표현식  (0) 2020.01.09
클래스  (0) 2020.01.06
파이썬기초(4)  (0) 2019.12.30
파이썬기초(3)  (0) 2019.12.26
파이썬기초(2)  (0) 2019.12.26

+ Recent posts