Python Basics - Function Parameters(2)

Jayson Hwang·2022년 4월 27일
0

Repl.it Assignment #28


📌 Assignment #28-1.

함수를 정의 할때 default value parameter를 non-default value parameter 앞에 정의 하면 안 되는 이유는?

default값이 정의되지 않은 parameter보다 default값이 정의된 parameter가 앞에 있을 경우 순서가 중요한 non-default value parameter가 자신에게 할당된 순서를 온전히 찾지 못하게 되고 에러가 발생하게 된다.



📌 Assignment #28-2.

위치 인수(positional arguments)와 가변 인수(variable length arguments)의 위치를 참고 자료를 통해 조사해서 어떤 에러가 발생 하는지 확인하고, 에러를 고쳐 정상적으로 출력되는 결과를 블로그에 정리해 주세요.

def func_param_with_var_args(name, *args, age):
    print("name=",end=""), print(name)
    print("args=",end=""), print(args)
    print("age=",end=""), print(age)

func_param_with_var_args("정우성", "01012341234", "seoul", 20)

*argsage 앞에 위치하면,
*args"01012341234", "seoul", 20이 포함된다.

따라서, 아래와 같이 변경하면 정상적으로 출력이 가능하다.

def func_param_with_var_args(name, age, *args):
    print("name=",end=""), print(name)
    print("args=",end=""), print(args)
    print("age=",end=""), print(age)


func_param_with_var_args("정우성", 20, "01012341234", "seoul")


📌 Assignment #28-3.

가변 키워드 인수 (variable length keyword arguments)의 위치를 참고 자료를 통해 조사해서 어떤 에러가 발생 하는지 확인하고, 에러를 고쳐 정상적으로 출력되는 결과를 블로그에 정리해 주세요.

def func_param_with_kwargs(name, age, **kwargs, address=0):
    print("name=",end=""), print(name)
    print("age=",end=""), print(age)
    print("kwargs=",end=""), print(kwargs)
    print("address=",end=""), print(address)

func_param_with_kwargs("정우성", "20", mobile="01012341234", address="seoul")

가변인자인 **kwargsmobile="01012341234"와 address="seoul"이 포함되어 default value parameter인 address=0의 값이 입력x

따라서,

def func_param_with_kwargs(name, age, address=0, **kwargs):
    print("name=",end=""), print(name)
    print("age=",end=""), print(age)
    print("kwargs=",end=""), print(kwargs)
    print("address=",end=""), print(address)

func_param_with_kwargs("정우성", "20", mobile="01012341234", address="seoul")


📌 Assignment #28-4.

위치 인수와 키워드 가변 키워드 인수 (variable length keyword arguments)의 위치를 위치를 참고 자료를 통해 조사해서 어떤 에러가 발생 하는지 확인하고, 에러를 고쳐 정상적으로 출력되는 결과를 블로그에 정리해 주세요.

def mixed_params(name="아이유", *args, age, **kwargs, address):
    print("name=",end=""), print(name)
    print("args=",end=""), print(args)
    print("age=",end=""), print(age)
    print("kwargs=",end=""), print(kwargs)
    print("address=",end=""), print(address)

mixed_params(20, "정우성", "01012341234", "male" ,mobile="01012341234", address="seoul")

위의 사진 순서로 보면,
Regular Positional Arguments >
Default Argument >
Variable Length Positional Arguments >
Keyword-Only Argument >
Variable Length Keyword Arguments

따라서, 정상으로 출력되기 위해서는

def mixed_params(age, name="아이유", *args, address, **kwargs):
    print("name=",end=""), print(name)
    print("args=",end=""), print(args)
    print("age=",end=""), print(age)
    print("kwargs=",end=""), print(kwargs)
    print("address=",end=""), print(address)


mixed_params(20, "정우성", "01012341234", "male", mobile="01012341234", address="seoul")
profile
"Your goals, Minus your doubts, Equal your reality"

0개의 댓글