SóProvas


ID
2743183
Banca
FGV
Órgão
MPE-AL
Ano
2018
Provas
Disciplina
Programação
Assuntos

Analise o código Python 2.7 a seguir


L=[10, 12, 14, 16]

for k in range(4, -5,-1):

print L[k]


Esse programa causa

Alternativas
Comentários
  • Gabarito: A

  • Falta identação na linha do print para que fique dentro do FOR


    SyntaxError: expected an indented block


    E se for executar na versão 3.6.5 precisa de () no print tb

  • GABARITO A

    obtive sucesso somente com o seguinte codigo:

    >>> L=[10, 12, 14, 16]

    >>> for a in range(3,0,-1):
         print(L[a])

         
    16
    14
    12

  • Na verdade o print está certo. Ele fala python 2.7 e não 3.6

  • O problema está no valor inicial do range (4). Como os valores tem o índice começando em 0, não há registro com índice 4. Por isso o erro: IndexError: list index out of range

    índice:

    0: 10

    1: 12

    2: 14

    3: 16

    Caso rodem na versão 2.7, não precisa colocar os parenteses no print, já na versão 3.6, precisa.

    É preciso identar o print também

  • CERTO: Erros de Sintaxe: Esses são erros de digitação ou outro erro no código que bloqueiam a execução de um script. Vamos ver um exemplo:

    $i = 0 
    echo $i; 

    O código acima produz um erro, pois todas as linhas executáveis em PHP devem terminar em ponto-e-vírgula.  São também erros sintaxe o não fechamento de parênteses ou colchetes, erro de digitação de palavras-chaves, chaves sobrando, entre vários outros. Muitas vezes, erros de sintaxe são fáceis de diagnosticar por que as mensagens de erro mostram o problema e também sua localização.

     

  • No 3.7 isso seria erro de identação. 

  • Como o Focado na missão falou, é erro de execução. A instrução range(4, -5,-1) gera a lista [4,3,2,1,0,-1,-2,-3,-4], acessar o índice 4 da lista L gera o erro de execução " IndexError: list index out of range".

  • Galera, esqueçam erro de identação, o problema é os funcionários do QC que tem má vontade e adicionam a questão de qualquer jeito sem as identações devidas.

  • é cada resposta...rsrsrs

    se contentem com o básico/simples

    é o que o Saulo Gomes falou (simples e rasteiro)

  • O erro é de identação mesmo. Pra quem quiser conferir na prova original vou deixar o link abaixo, vejam a questão 53.

    Os erros de sintaxe apontam para a linha de nosso script e, normalmente são fáceis de se corrigir.

    Além disso, corrigindo a identação teríamos um erro de execução também, "list index out of range"

    Link para a prova: http://netstorage.fgv.br/mpal/05_MPAL2018_Analista_do_Ministerio_Publico_-_Desenvolvimento_de_Sistemas_(NS04)_Tipo_1.pdf

  • Haveria erro de sintaxe e erro de execução:

    ~>Sintaxe são as regras do código-fonte, ie, pontuação correta, indentação, colocar colchetes, duas aspas nas strings, parênteses e outros.

    ~>Erro de execução: colocar um parâmetro que não retorna um valor, dividir um número por zero e outros.

    ~>O erro de sintaxe vem sempre antes do de execução

    ~>No caso em tela, há erro de sintaxe, porque depois do "for"é necessário ":", o que não ocorreu. Poderia até omitir os dois-pontos, desde que houvesse a indentação.

    ~>Também houve erro de execução, porque na função range (start, stop, step), o valor de 4 não existe no intervalo, visto que no python os índices das listas começam com zero. Então, se fosse: range (3,-3,-1), a lista retornaria L = [16,14,12] e o 10 não apareceria, porque na função range o "stop", ie, o último elemento é descartado.