python

[python] return 키워드 | default 파라미터 | packing(*)

전감자(◔◡◔) 2022. 9. 26. 20:48

-return 키워드 

'''

함수(function)

1. 여러개 값을 리턴할 수 있다(착시 효과로서 반드시 1개만 리턴 가능하다.)
==> 집합형에 먼저 저장하고 나중에 집합형을 리턴한다.

2. return 키워드 2가지 용도 (자바도 동일 )
    가. 리턴 값을 반환하기 위해서 (주목적)
    나. 함수를 중지 목적
'''

#1. 여러개 값을 리턴할 수 있다
def fun():
    return 10,20

result =fun()
print(result) # (10,20)

#2. 함수를 중지 목적

def fun2():
    print("fun2")
    if True: return #함수 중지
    print("fun2-1")
    print("fun2-2")

fun2()
print("end")

 

- default 파라미터

 

'''

1.(기본적으로)함수 호출 시 전달 값과 함수의 변수의 갯수가 일치 되어야 한다.

2.defalut 파라미터 사용 ===> 함수의 변수가 더 많은 경우
'''

#1.(기본적으로)함수 호출 시 전달 값과 함수의 변수의 갯수가 일치 되어야 한다.

def fun():
    pass

fun()

# 2. defalut 파라미터 사용 ===> 함수의 변수가 더 많은 경우

def fun2(n=10):
    print("fun2",n)

fun2() #값을 넣어주지 않으면 디폴트 값이 출력된다.
fun2(100)

def fun4(x,n=10,n2=20):
    print("fun4",x,n,n2)

#fun4() 에러 x값은 꼭 있어야함
fun4(100)
fun4(1,2)
fun4(1,2,3)

 

-packing

 

'''

1.(기본적으로)함수 호출 시 전달 값과 함수의 변수의 갯수가 일치 되어야 한다.

2.defalut 파라미터 사용 ===> 함수의 변수가 더 많은 경우

3.packing (*이용) ==> 전달값이 더 많은 경우
                ==> 한꺼번에 전달되는 여러 개의 전달 값이 tuple로 묶어서 전달됨
                *표시는 한 번만 쓸 수 있음
'''

def fun(*x):
    print(x)

fun(10)#(10,)
fun(10,20)#(10, 20)
fun(10,20,30)#(10, 20, 30)
fun(10,20,30,40)#(10, 20, 30, 40)


def fun2(y,*x):
    print(y,x)


fun2(10) #10 ()
fun2(10, 20) #10 (20,)
fun2(10, 20, 30) #10 (20, 30)
fun2(10, 20, 30, 40)#10 (20, 30, 40)

def fun2(y,*x):
    print(y,x)

def fun3(y=999,*x):
    print(y,x)

fun3() #999 ()
fun3(10) #10 ()
fun2(10, 20) #10 (20,)
fun2(10, 20, 30) #10 (20, 30)
fun2(10, 20, 30, 40)#10 (20, 30, 40)

 

- named 파라미터

 

'''

1.(기본적으로)함수 호출 시 전달 값과 함수의 변수의 갯수가 일치 되어야 한다.

2.defalut 파라미터 사용 ===> 함수의 변수가 더 많은 경우

3.packing (*이용) ==> 전달값이 더 많은 경우
                ==> 한꺼번에 전달되는 여러 개의 전달 값이 tuple로 묶어서 전달됨
                *표시는 한 번만 쓸 수 있음

4. named 파라미터

    ==> 함수호출 시 변수명=값 형태로 호출하는 방식이다.
    ==> 함수의 변수가 여러 개인데, 특정 변수에만 값을 저장할 때 사용된다.
        나머지는 defalut 파라미터로 만든다.


'''

def fun(x,y):
    print(x,y)

fun(10,20)
fun(x=100,y=200)
fun(x=1000,y=2000)

#가정
#a와 d에만 값을 저장하고 싶을 때
def fun2(a=0,b=0,c=0,d=0,e=0,f=0):

    print(a,b,c,e,d,f)

fun2(a=100,d=200)

# 혼합가능

def fun3(name,age,address):
    print(name,age,address)

fun3("홍길동",20,"서울")
fun3(name="홍길동",age=20,address="서울")
fun3("홍길동",age=20,address="서울")

 

'python' 카테고리의 다른 글

[python] 일급객체  (0) 2022.09.26
[python] Dict Packing  (0) 2022.09.26
[python] 함수 기본 | 리턴 타입 명시  (0) 2022.09.26
[python] generator  (0) 2022.09.22
[python] Dict Comprehension  (1) 2022.09.22