O {for i in range(1,n)} deveria ser {for i in range(1,n-1)} pois os testes consultam {val[i+1]}. Mas felizmente nenhum dos casos (ponto, apostrofe, hífen, branco) acontece quando {i} é {n-1}. Relatório: OK como acima.