TIL 13|Python関数とパラメータ、可変パラメータ
Function
def 함수명(parameter):
실행문1
실행문2
...
return(또는 print사용) 리턴 값
#파라미터와 리턴은 있을 수도 없을 수도 있다.
parameter
1.位置パラメータ(基本)
def name(last, first):
return last + first
name("이","코딩")
>>> "이코딩"
「この符号化」で値を返すには、last、firstパラメータの順にパラメータを追加します.2. Keyword Argument
def name(last, first):
return last + first
name(first="코딩",last="이")
>>> "이코딩"
keywordパラメータ方式を使用すると、順序を変更したり、可読性を高めたりすることができます.3.Mixing position arguments and keyword argumentsの混合
def name(last, first, age):
print(f"{last+first}, {age}")
name("이", age=25, first="코딩")
>>> "이코딩, 25"
注意事項🚨keyword argumentsは順序を変えることができます
位置論点部分は順序を守らなければならない.
4. Parameter Default Value
1.関数のパラメータにデフォルト値を定義します.
2.パラメータがなくても、呼び出し関数はdefault値を自動的に超えます.
def name(last, first="코딩"):
return last + first
name("이")
>>> "이코딩"
注意事項🚨default値で定義されたパラメータは、未定義のパラメータの前には使用できません.
どうしてだめなの?
パラメータの値を正確に決定するためだと思います.
たとえば、次のコードを表示すると、
def name(last, first="코딩", age):
print(f"{last+first}, {age}")
name("이",25)
#SyntaxError: non-default argument follows default argument
2番目のパラメータ25はfirstとageの値が何であるか分からない.最初に定義したデフォルト値は、値がない場合に自動的にインポートされます.
確定した値ではないので、順番に問題が発生します.
可変パラメータ
argsはパラメータを表す英語の単語argumentsの略で、通常使用されます.
kwargsはキーワードargumentsの略で、argsと同様に慣例を使用します.
可変パラメータは、入力値が何個あるか分からない場合に使用します。
def foo(a, *varargs, **kwargs):
print(a, varargs, kwargs)
## foo 호출
foo(2, 9, 12, 34, x=3, name="bob")
>>> 2 (9, 12, 34) {'x': 3, 'name': 'bob'}
args-tuplekwargs-辞書
tuple:
()かっこ内のデータ(作成、削除、または変更不可)
dictionary:
{}カッコで囲まれたデータ、キー:値の形式にデータが含まれ、順序がありません.
パラメータ順序👇
positional args > default args > *args > keyword args > **kwrags
パラメータ順序、検索エラーに注意👀
<第1題>
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)
<エラー>TypeError: func_param_with_var_args() missing 1 required keyword-only argument: 'age'
argsは基本パラメータageの前にあるのでエラーが発生しました.
<修正>
def func_param_with_var_args(name, age, *args):
<第二題>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")
<エラー>def func_param_with_kwargs(name, age,
**kwargs, address=0):
^
SyntaxError: invalid syntax
default値はパラメータを定義する前に**kwargsにエラーが発生しました.
<修正>
def func_param_with_kwargs(name, age, address=0, **kwargs):
<第三題>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")
<エラー>def mixed params(name=“iu”,*args,age,**kwargs,address):
^
SyntaxError: invalid syntax
パラメータの順序は以下の通りです.
positional args > default args > *args > keyword args > **kwrags
<修正>
def mixed_params(age, name="아이유", *args, address, **kwargs):
Reference
この問題について(TIL 13|Python関数とパラメータ、可変パラメータ), 我々は、より多くの情報をここで見つけました https://velog.io/@wjddk97/TIL13-Python함수와-파라미터-가변인수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol