Jesse wrote: > Why is it that when one variable is assigned a value in terms of > another variable, assigning a new value to the first doesn't change > the value of the second? This is giving me a huge headache, since I > have a bunch of variables defined in terms of one another, and I want > to be able to dynamically update them (I did not include the > definitions of the functions overstock and roundup, but they work): > > stock = float(raw_input("Enter stock (in terms of portions: ")) > container = float(raw_input("Enter portions per container: ")) > price_per_container = float(raw_input("Enter price per container: ")) > weekly_quota = float(raw_input("Enter quota (in terms of portions): ")) > extra = overstock(stock, weekly_quota) # overstock returns 0 if the > first argument is less than the second; otherwise it returns the > > difference between the first argument and the second. > need = weekly_quota - extra > buy_containers = roundup(need/container) # roundup rounds a > non-integer to the next highest integer > buy_portions = buy_containers * container > leftover = buy_portions - need > cost = price_per_container * buy_containers > > I would like to write a function that will update the values of the > above variables given an increase in only the stock variable. > Otherwise I'd have to repeat a bunch of code...:( def recalculate(): global extra, need, buy_containers, buy_portions, leftover, cost extra = overstock(stock, weekly_quota) need = weekly_quota - extra buy_containers = roundup(need/container) buy_portions = buy_containers * container leftover = buy_portions - need cost = price_per_container * buy_containers
That's all there is to it. _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor