Home Fóruns Python ex027

Visualizando 1 resposta da discussão
  • Autor
    Posts
    • #83167
      Mateus Silva
      Participante

      n = str(input(‘Infome seu nome completo: ‘)).strip()
      nome = n.split()
      print(‘Seu primeiro nome é {}’.format(nome[0]))
      print(‘Seu último nome é {}’.format(nome[len(nome)-1]))

      Esse é o código resposta do vídeo.

      Eu não consegui entender o o format da última linha, mais precisamente o porquê do “-1”.
      Eu até cheguei a testar sem o “-1” e com “+1”, mas da erro:

      Traceback (most recent call last):
      File “C:\Users\mateu\PycharmProjects\CursoemVideo\ex027_ler_nome_completo.py”, line 12, in <module>
      print(‘Seu último nome é {}’.format(nome[len(nome)+1]))
      IndexError: list index out of range

      Process finished with exit code 1

      eu entendi a função do format e do len, mas o forma como está posto (nome[len(nome)-1]) que eu não consegui entender o que está acontecendo ai.

      obg.

    • #83177
      IcaroFilho
      Moderador

      Bom dia Matheus,

      Vamos do começo.
      vamos supor que tenha digitado seu nome em n.
      logo n é uma string contendo "Matheus Silva"
      Ao utilizarmos o método .split(), com os parâmetros vazios, indicamos que faremos a quebra entre os espaços, e este método nos retornara uma Lista
      nome = ["Matheus","Silva"]

      Lembra que nós acessamos os elementos de uma lista pelo seu indice ? muito bem, logo no primeiro print nos mostramos o nome de indice 0 que é o Matheus

      o método .len() retorna o numero de elementos de uma lista,
      no caso, len(nome) é igual a 2

      Uma outra resolução para isso seria passando um índice negativo.
      ex.: nome[-1]
      caso ainda não tenha estudado a respeito, pesquise sobre ‘fatiamento de strings’

      Espero ter ajduado.
      Bons estudos

      • índice 0 -> Matheus
      • índice 1 -> Silva

      Em resumo, sempre que quisermos o ultimo elemento de uma lista utilizando o len(), temos q diminuir de 1 pois a contagem do índice começa em 0.
      Lembre-se que esta é apenas uma das maneiras de resolução deste exercício, existe outras… tente pesquisar uma maneira alternativa.

Visualizando 1 resposta da discussão
  • Você deve fazer login para responder a este tópico.