引数のない関数
私たちはこれまでにPythonの関数を使ってきました。実際、最初のプログラムですでに関数を使用していました。print()は実は関数です。min()、max()、input()、sorted()、そして他のすべての括弧付きのコマンドは関数です。
関数は複数の命令を実行し、場合によっては結果を返します。たとえば、min()は複数の値の最小値を計算し、その値を返します。一方、print()は値を出力に表示します。
関数は、コードの繰り返しをなくすのに特に便利です。自分自身でカスタム関数を定義することもできます。たとえば、特定のオブジェクトを3回プリントし、その間に他の処理を行いたいとします。
print('*')
print('##')
print('***')
print('####')
print('*****')
n = int(input())
print('~' * n)
print('*')
print('##')
print('***')
print('####')
print('*****')
name = input()
print(f'Hi, {name}')
print('*')
print('##')
print('***')
print('####')
print('*****')def print_triangle():
print('*')
print('##')
print('***')
print('####')
print('*****')
print_triangle()
n = int(input())
print('~' * n)
print_triangle()
name = input()
print(f'Hi, {name}')
print_triangle()関数を定義するには、defキーワードの後に関数名(この場合はprint_triangle)を記述し、その後に()と、関数ブロックの開始を示すための:を付けます。関数が実行すべき命令の一覧は、関数本体内のインデントされたブロックに配置します。
これらのプログラムはどちらもまったく同じ操作を実行しますが、2つ目のプログラムでは繰り返しの部分を関数で定義し、コードがコピー&ペーストされないようにしています。
一方、最初のプログラムでは多くのコピー&ペーストがあり、もし三角形をプリントする際の*を%に変更したい場合、たくさんの変更を行い、すべての行を確認して変更する必要があります。これはコードが大きくなると非常に混乱しやすく、エラーが発生しやすくなります。
チャレンジ
の長方形をプリントする関数を定義し、それを3回呼び出してください。長方形の枠は#記号で、内側は空白にしてください。
__Output__
############
# #
# #
# #
# #
# #
# #
# #
# #
############
############
# #
# #
# #
# #
# #
# #
# #
# #
############
############
# #
# #
# #
# #
# #
# #
# #
# #
############Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB