'How can I change this code so that it can complete the loop and finish the calculations
I'm trying to create a calculator to let me know how many waters I need to sell to get my desired profit.
Mainly I want this code to calculate How many waters and packs of water I need to make $380 profit.
My code is not returning an error, but it stops counting at 24 and does not print my f string statements.
#packs of water
n = 1
#profit needed
Profit_needed = 380
#Water cost $5 per pack
Water_Cost = n*5
# 2 packs of ice per pack of water. Ice pack is $2 each
Ice_cost = (n*2)*2
# number of ice packs
Ice_amount = Ice_cost*.5
#profit
Water_Profit = n*25 -Ice_cost - Water_Cost
while Water_Profit < Profit_needed:
n = n+1
print(n)
Ice_cost = (n*2)*2
Water_Cost = n*5
Water_Profit = n*25 -Ice_cost - Water_Cost
Waters_needed = n*25
Ice_amount = Ice_cost*.5
if Water_Profit == Profit_needed:
print(f'{n} is cases need')
print(f' {Water_Profit} is profit')
print(f'{Waters_needed} is amount needed to sell')
print(f' {Water_Cost} is the Water cost')
print(f' {Ice_cost} is the Ice cost')
print(f' {Ice_amount} is the Ice bags')
Solution 1:[1]
Change
if Water_Profit == Profit_needed:
to
if Water_Profit >= Profit_needed:
Water_profit might never exactly equal profit_needed.
Another thing you could do is to move the prints inside the if to outside the while-loop (without the if condition) since the execution will only reach there if Water_Porfit met the condition you wanted.
Solution 2:[2]
Your code is excellent,
thing there is , at your loop you just pass by the 380$ profit directly to 384$ from somewhere below 380$
and your if statement is == which means equal , now 380 == 384 returns False
so a Correction would be if Water_Profit >= Profit_needed: , if you are interested in the exact amount of 380 , you'll have to add some code to it to deal with float numbers , or find another approach.
#packs of water
n = 1
#profit needed
Profit_needed = 380
#Water cost $5 per pack
Water_Cost = n*5
# 2 packs of ice per pack of water. Ice pack is $2 each
Ice_cost = (n*2)*2
# number of ice packs
Ice_amount = Ice_cost*.5
#profit
Water_Profit = n*25 -Ice_cost - Water_Cost
while Water_Profit < Profit_needed:
n = n+1
print(n)
Ice_cost = (n*2)*2
Water_Cost = n*5
Water_Profit = n*25 -Ice_cost - Water_Cost
Waters_needed = n*25
Ice_amount = Ice_cost*.5
if Water_Profit >= Profit_needed:
print(f'{n} is cases need')
print(f' {Water_Profit} is profit')
print(f'{Waters_needed} is amount needed to sell')
print(f' {Water_Cost} is the Water cost')
print(f' {Ice_cost} is the Ice cost')
print(f' {Ice_amount} is the Ice bags')
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | M K |
| Solution 2 | DanielGzgzz |
