これが完全に再利用に関連しているかどうかはわかりませんが、メイン関数内に小さな関数を追加して、整数以外の入力をブロックしました
def main(depth, size):
depth = eval(input("Enter depth that is an integer: "))
if (isinstance( depth, int)) == False:
print( 'Not an integer' )
main(depth, size)
else:
pass
turtle.left(120)
turtle.speed(100)
triangle(depth, size)
def triangle(depth, size):
if depth == 0:
pass
else:
turtle.forward(size)
triangle(depth-1, size/2)
turtle.right(120)
turtle.forward(size)
turtle.left(120)
triangle(depth-1, size/2)
turtle.right(120)
turtle.right(120)
turtle.forward(size)
turtle.right(120)
main(depth, 100)
整数を入力すると、プログラムは正常に実行されます。非整数を入力すると、戻り、整数ではないことが通知され、入力ステージに戻ります。次に、整数を入力すると、必要に応じて画像の描画が開始され、さらに少し進んで、「三角形(深さ-1、サイズ/ 2)」の27行目の再帰でハングアップします。
このプログラムの完成が近づいているので、クラッシュしにくくする必要があります。