引数のない関数
私たちはこれまでに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