キーワード専用引数

関数に渡す引数を、その位置に関係なく名前で指定したい場合があります。こうすることで、それぞれの引数が何を表しているのかを明確にできます。Pythonでは、これらの引数を「キーワード引数」と呼びます。キーワード専用引数もこれに似ていますが、特別な点があります。それは、キーワードでのみ指定でき、位置で指定することはできないということです。
キーワード専用引数を持つ関数を定義するには、関数シグネチャで * 記号を使用します。* の後に現れる引数は、必ずキーワードで指定しなければなりません。
長方形の面積を計算する関数を考えてみましょう。この関数は、長さ(length)と幅(width)という2つの引数を必要とします。さらに、小数点以下を含む正確な面積を返すか、小数点以下を含まない四捨五入した面積を返すかを決定するためのオプションのブール引数 rounded を受け取ることができます。関数を呼び出す際の混乱を防ぐために、rounded をキーワード専用引数にしたいとします。
def rectangle_area(length, width, *, rounded=False):
    area = length * width
    return round(area) if rounded else area


print(rectangle_area(5.3, 4.2))                # 22.26 を出力、rounded が指定されていないのでデフォルトの False
print(rectangle_area(5.3, 4.2, rounded=True))  # 22 を出力、rounded が True に設定されている
print(rectangle_area(5.3, 4.2, True))          # エラー!rounded はキーワードで指定する必要があります
print(rectangle_area(5.3, 4.2, False))         # エラー!rounded はキーワードで指定する必要があります
print(rectangle_area(length=5.3, width=4.2, rounded=True))  # 22 を出力
この関数は、lengthwidth を位置引数で、rounded をキーワード引数として指定して呼び出すことができます。第三引数を位置引数として指定しようとすると、エラーが発生します。
なお、ここでは位置専用引数として定義していないため、必要に応じて位置引数にもキーワード構文を使用することができます。

チャレンジ: テキストを繰り返す

指定されたテキストを特定の回数繰り返す関数 repeat_text を作成するタスクがあります。この関数は2つの引数を取ります:texttimestext は繰り返す文字列であり、times は繰り返しの回数です。
times 引数はデフォルト値を 1 とするキーワード専用引数とします。つまり、times が指定されない場合、関数は元のテキストをそのまま返す必要があります。
関数は、texttimes 回繰り返した文字列を返す必要があります。
入力の最初の行には文字列 text が含まれます。2行目には整数 times が含まれます。
関数は、texttimes 回繰り返した文字列を返す必要があります。
入力
出力
Hello World! 3
Hello World!Hello World!Hello World!
注意: 出力の繰り返されたテキストの間には、空白や他の区切り文字は一切ありません。
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 10 MB

To check your solution you need to sign in
Sign in to continue