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

[Dúvida] Dúvida em Python, lista e função.

Eu estava querendo fazer um programa que verificasse se um funcionário(item de uma lista) vendeu produtos suficientes para receber um bônus de 10%. Pra isso eu criei uma função que entrava dentro de uma lista e printava o bônus caso o funcionário atingisse uma meta. Só que o código não está funcionando e eu não sei dizer o porquê. Como eu faria para fazer um programa que tivesse uma função com o mesmo objetivo e usando listas?

def verificarVendas(nome, qteVendas, metaVendas):
    if(qteVendas >= metaVendas):
        print(f"{nome} recebe o 10% de bônus nas vendas, {qteVendas * 0.1}, pois vendeu {qteVendas}: a meta é {metaVendas}!")
    else:
         print(f"{nome} não recebe o 10% de bônus nas vendas, pois vendeu {qteVendas}: a meta é {metaVendas}!")

metaVendas = 1000
vendas_e_Funcionarios = [["Funcionário 1", 1000],["Funcionário 2", 770],["Funcionário 3", 2700]]

for i in vendas_e_Funcionarios:
    verificarVendas([0], [1], metaVendas)
1 resposta
solução!

Seu for não está utilizando os itens da lista para passá-los para a função. Ele está criando duas listas com 1 item cada: [0] e [1].

Para corrigir basta utilizar a variável i que você criou:

for i in vendas_e_Funcionarios:
    verificarVendas(i[0], i[1], metaVendas)

Ou você pode usar duas variáveis no for para recuperar os valores diretamente. Obs.: Isto funciona, pois listas são objetos iteráveis.

for funcionario, vendas in vendas_e_Funcionarios:
    verificarVendas(funcionario, vendas, metaVendas)