If I may, I’d like to point out two things:
1 - Your code didn’t seem to make much sense, so I rewrote from scratch.
2 - I admit that there is some verbiage in the code I wrote, but it was for didactic purposes.
Goes below:
'''
garrafas com capacidade de apenas 5, 1.5, 0.5, 0.25
entra x agua e se autodistribui em n garrafas, da maior para a menor
'''
#OBS: a divisão inteira do Python (x//y)retorna apenas a parte inteira do quociente, ignorando os decimais pós-vírgula.
#para melhor compreensão, vou explicar o que a linha faz acima da mesma, ok? =D
#declara a função numeroGarrafas que recebe um parâmetro litros_agua.
def numeroGarrafas(litros_agua):
#copiamos o valor da variável/parâmetro litros_agua para total_agua. Dispensável, mas didático.
total_agua = litros_agua
#divisão inteira por 5 (24.3//5=4)
cinco_litros = litros_agua//5
#subtrai do valor total a quantidade que se conseguiu armazenar em garrafas de 5L
#equivale a: litros_agua = litros_agua - cinco_litros*5 (litros_agua = 24.3-(4*5) = 24.3-20 = 4.3)
litros_agua -=(cinco_litros*5)
#mesmo procedimento, mas com valores de 1.5
#litro_e_meio = 4.3//1.5 = 2
litro_e_meio = litros_agua//1.5
#litros_agua = 4.3-2*1.5 = 4.3-3 = 1.3
litros_agua -=(litro_e_meio*1.5)
#agora com 0.5
#meio_litro = 1.3//0.5 = 2
meio_litro = litros_agua//0.5
#litros_agua = 1.3 - 2*0.5 = 1.3-1 = 0.3
litros_agua-=(meio_litro*0.5)
#quarto_de_litro = 0.3//0.25 = 1
quarto_de_litro = litros_agua//0.25
#litros_agua = 0.3-1*0.25 = 0.3-0.25 = 0.05 [ou 50ml]
litros_agua -=(quarto_de_litro*0.25)
#para não desperdiçarmos o máximo de 0.24L, vamos incluir uma linha com condicionais abaixo:
#se sobrar alguma agua, reservamos a menor garrafa disponível para contê-la.
if(litros_agua>0):
#equivale a quarto_de_litro = quarto_de_litro+1
quarto_de_litro+=1
#finalmente o print, que coloca as variaveis conforme a própria disposição da frase.
print('total:',total_agua,' garrafas de 5L:',cinco_litros,' de 1.5L:',\
litro_e_meio,' de 0.5L:',meio_litro,' e de 0.25L:',quarto_de_litro)
#a string acima te dá os resultados, do maior para o menor, mais a quantidade total de litros(para efeito de referência)
numeroGarrafas(24.3) #a saida deve ser (total: 24.3 garrafas de 5L: 4.0 de 1.5L: 2.0 de 0.5L: 2.0 e de 0.25L: 1.0)
Good afternoon Rodrigo! Welcome to Stackoverflow! It’s good practice that, in addition to posting the code, you specifically explain the problem you’re having.
– H.Lima
I can not get the solution of the problem, the function I did does not give, I lack something.:(
– Rodrigo Ferreira
Edit your question by specifying your problem, an error message would be a good start. taking advantage of the moment, it would be nice to take a look at this topic of how to create a minimum, complete and verifiable example in addition to the topic of how to ask a good question
– H.Lima