Pythonにおける引数の組み合わせ

同じ関数に、キーワード引数と位置引数を同時に 渡すことができます。 これはシンボル*を使って行います。 このシンボルは、右側に指定された引数を、 デフォルト値を使用しない場合、キーワード引数として 扱うべきであることを示します。

すべての引数をコンソールに出力する関数を 作成してみましょう。変数dataは 通常の位置引数を表します。その後、シンボル *の後に、デフォルト値を持つ2つの変数 startとendを指定します。 しかし、関数を呼び出す際には、これらの 変数をキーワード引数にします:

pythondef func(data, *, start=0, end=100):
  print(data, start, end)

func(1, start=2, end=3)

コード実行結果:

python1 2 3

一方、変数startのデフォルト値を削除し、 同時にキーワード引数として指定しなかった場合、 エラーが発生します。 これは、シンボル*が既にstartを キーワード引数として定義しているためです:

pythondef func(data, *, start, end=100):
  print(data, start, end)

func(1, 2, end=3) # エラーが出力されます
Задание 1

次のコードを実行した結果はどうなりますか:

pythondef func(num1, num2, *, num3):
  return (num1 + num2) * num3

print(func(2, 4, num3=3))
Задание 2

次のコードを実行した結果はどうなりますか:

pythondef func(num1, *, num2, num3):
  return (num1 - num2) / num3

print(func(12, 4, num3=5))
Задание 3

次のコードを実行した結果はどうなりますか:

pythondef func(*, name='user1', age='18'):
  return 'Username is ' + name + ' age is ' + age

print(func(name='john'))