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 |