Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

List comprehensions - Output : None

Pessoal, com a finalidade de entender um pouco melhor o list compreehensions, gerei o exemplo no notebook:

x = 4
[(print(f'{x} x {i} = {x*i}')) for i in range(11)]

O resultado apresentado deu certo (tabuada do 4), porém no final apresentou:

[None, None, None, None, None, None, None, None, None, None]

Parece que tem algo relacionado com o comando 'print', mas não consegui entender.

1 resposta
solução!

Oi Alipio, tudo bem?

A sintaxe de uma list comprehension é:

[expressao for item in lista]

Ou seja, aplique a expressão em cada item da lista. Neste caso que você nos apresentou ele está aplicando o print para cada item da lista e como a função print por padrão possui retorno None a lista será preenchida com este retorno.

Para corrigir isto você pode printar a list comprehension diretamente na função print. Algo como:

print([f'{x} x {i} = {x*i}' for i in range(11)])

Porém não é tão habitual ver casos assim. O mais comum é você extrair para uma variável a list comprehension e depois printá-la.

tabuada = [f'{x} x {i} = {x*i}' for i in range(11)]
print(tabuada)

Se houver ficado alguma dúvida é só falar. Abraços e bons estudos!