Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Como ele sabe que fruta é cada elemento da lista frutas?

Como o Python entende que fruta é um elemento da lista frutas sendo que não apontamos isso em nenhum lugar? Já tive essa dúvida quando foi utilizado o termo 'letra' no laço que checa se a letra está dentro da palavra.

No começo achei estranho o termo estar em português rs, depois vi que na verdade não é um comando nativo do Python e sim algo que nós determinamos pra ele simbolizar cada caractere em uma palavra. Como funciona isso? Em quais outros tipos eu posso usar esse recurso?

4 respostas

Nesta linha de comando é definido isto:

for fruta in frutas

A partir desta linha é criada a variável "fruta" para receber cada valor da lista "frutas".

Então ele sabe que toda vez que alguém referenciar algo nesse estilo em uma lista ele vai considerar o um elemento da lista? Eu poderia no lugar de 'fruta' colocar qualquer palavra, certo?

Pelo o que eu estou entendendo esse tipo de sintaxe funciona diferente pra cada do tipo primitivo, e o que ele entende como 'menor parte' desse tipo:

string - ele vai puxar cada caractere

lista - ele vai puxar cada elemento da lista

arquivo de texto - ele vai puxar cada linha do arquivo (mais pra frente aparece a mesma coisa quando estamos importando a lista de frutas de um .txt - 'for linha in frutas.txt')

Isso funcionaria com int ou float? Se sim, qual seria a 'menor parte' em que ele se basearia? De 1 inteiro em 1 inteiro?

solução!

Vamos por partes:

Então ele sabe que toda vez que alguém referenciar algo nesse estilo em uma lista ele vai considerar o um elemento da lista? Eu poderia no lugar de 'fruta' colocar qualquer palavra, certo?

R: Certo, ele se referencia por qualquer coisa que possa ser mensurável por índices.

Pelo o que eu estou entendendo esse tipo de sintaxe funciona diferente pra cada do tipo primitivo, e o que ele entende como 'menor parte' desse tipo:

string - ele vai puxar cada caractere

lista - ele vai puxar cada elemento da lista

arquivo de texto - ele vai puxar cada linha do arquivo (mais pra frente aparece a mesma coisa quando estamos importando a lista de frutas de um .txt - 'for linha in frutas.txt')

R: Sim! Você entendeu certinho como funciona. Você consegue puxar uma string por letra e as listas por elemento, pois podem ser encontrados em índices! No caso do arquivo, cada linha pode ser chamado de um índice, fazendo também possível o looping.

Isso funcionaria com int ou float? Se sim, qual seria a 'menor parte' em que ele se basearia? De 1 inteiro em 1 inteiro?

R: Não é possível fazer um 'range()' com float, porém sim com inteiros, então você pode fazer o looping com inteiros de um número à outro. Ex:

for n in range(1,4):
    print(n)
1
2
3

Porém com float não é possível, pois float tem um número grande de casas decimais, pode ser perigoso para o sistema fazer looping com float, além de confuso para o sistema, uma vez que ele não saberá a partir de qual casa decimal ele deve fazer o looping, podendo tornar um looping praticamente infinito. Assim sabendo, por segurança, não há looping de float, mas há a possibilidade de você tornar o resultado um float. Ex:

for n in range(1,11):
  print(float(n))
1.0
2.0
3.0
4.0
5.0
6.0
7.0
8.0
9.0
10.0

Enfim! Espero ter ajudado e parabéns, você entendeu bem esta lição :D

Ótimo! Muito obrigado, Demétrio e Gabriel!