I agree, but if I want to get a A on the program, thats how my professor wants the output.
:) [EMAIL PROTECTED] wrote: > On Oct 22, 9:12?pm, Shawn Minisall <[EMAIL PROTECTED]> wrote: > >> Thanks, everyone! Using everyone's suggestions and points, the program >> is working great now. >> > > Actually, it's not. I assume not printing the population > was a copy error. > > But, by adding the "if (p>1):", you have now made > day 1 the initial population, so if you ask for > 8 days of multiplication, you actually only get 7. > > Although your code is working, it's not giving you > the correct answer. Most of the time in these kinds > of problems, days means elapsed days. That means for > 100 organisms @ 25% growth/day, there will be 125 > after 1 elapsed day. But that "if (p>1):" means you > show 100 at day 1, which is wrong. You have 100 after > 0 elapsed days (or day 0). > > > >> Here's the updated code. >> >> :) >> >> import math >> >> def main(): >> #Declare and initialize variables >> #starting number of organisms >> organisms = 0 >> #average daily population increase as % >> increase = 0.0 >> #number of days they will multiply >> days = 0 >> #population prediction >> population = 0.0 >> >> #Intro >> print "*********************************************" >> print "WELCOME TO THE POPULATION GROWTH CALCULATOR" >> print "*********************************************" >> >> print "This program will predict the size of a population of organisms." >> print >> print >> while organisms <=1: >> organisms=input("Please enter the starting number of organisms: ") >> if organisms <=1: >> print "Error. Population must be at least two." >> >> while increase <=0: >> increase=input("Please enter the average daily population >> increase as a percentage (20% = .20): ") >> if increase <=0: >> print "The percent of increase must be positive." >> >> while days <=0: >> days=input("Please enter the number of days that they will >> multiply: ") >> if days <=0: >> print "The number of days must be positive." >> >> print " Day Population" >> print "----------------------------------------------------------" >> population = organisms >> >> for p in range (1,days+1): >> if( p > 1 ): >> population = population + ( population * increase ) >> >> print "\t",p, >> >> >> >> [EMAIL PROTECTED] wrote: >> >>> On Oct 22, 5:37 pm, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> wrote: >>> >>>> On Oct 22, 5:22 pm, Marc 'BlackJack' Rintsch <[EMAIL PROTECTED]> wrote: >>>> >>>>> On Mon, 22 Oct 2007 18:17:56 -0400, Shawn Minisall wrote: >>>>> >>>>>> #Intro >>>>>> print "*********************************************" >>>>>> print "WELCOME TO THE POPULATION GROWTH CALCULATOR" >>>>>> print "*********************************************" >>>>>> >>>>>> print "This program will predict the size of a population of >>>>>> organisms." >>>>>> print >>>>>> print >>>>>> organisms=input("Please enter the starting number of organisms: ") >>>>>> >>>>>> increase=input("Please enter the average daily population increase >>>>>> as a percentage (20% = .20): ") >>>>>> >>>>>> days=input("Please enter the number of days that they will multiply: >>>>>> ") >>>>>> >>>>>> print " Day Population" >>>>>> print "----------------------------------------------------------" >>>>>> >>>>>> for p in range (days): >>>>>> >>>>>> population = organisms * population * increase >>>>>> >>>>>> print days, >>>>>> >>>>>> print "\t\t\t\t",population >>>>>> >>>>>> I'm having problems with my for loop here to calculate estimated >>>>>> population output to a table. Instead of knowing how much I want to >>>>>> loop it, the loop index is going to be whatever number of days the user >>>>>> enters. When I run my program, it asks the 3 questions above but then >>>>>> just dead stops at a prompt which leads me to believe there's something >>>>>> wrong with my loop. >>>>>> >>>>> It should not run at all as it is indented inconsistently. If that >>>>> problem is corrected it will stop with a `NameError` because you try to >>>>> read `population` before anything was assigned to it. >>>>> >>>>> Ciao, >>>>> Marc 'BlackJack' Rintsch >>>>> >>>> Also, I would guess that you want to print p, not days >>>> >>> Oh, and your calculation is incorrect. You don't multiply by >>> organisms in every loop iteration, organisms is the initial >>> value of population, so you can solve the "Name" error by doing >>> population = organisms before the for..loop. >>> >>> And since you're asking for an increase, you don't multiply by the >>> percent (as that would decrease the population), but instead by >>> 1+increase. >>> >>> Also, does day==0 represent the first day of increase or the >>> initial value? One would normally expect day==0 to be the initial >>> value, but as written, day==0 is the first day of increase. I >>> would use xrange(1,days+1) instead. >>> >>> Lastly, you can't have a fraction of an organism, right? You might >>> want to print your floating point population rounded to an integer. >>> >>> population = organisms >>> for p in xrange(1,days+1): >>> population = population * (1 + increase) >>> print p, >>> print "\t\t\t\t%0.0f" % (population) >>> >>> ## ********************************************* >>> ## WELCOME TO THE POPULATION GROWTH CALCULATOR >>> ## ********************************************* >>> ## This program will predict the size of a population of organisms. >>> ## >>> ## >>> ## Please enter the starting number of organisms: 100 >>> ## Please enter the average daily population increase as a percentage >>> (20% = .20): 0.25 >>> ## Please enter the number of days that they will multiply: 8 >>> ## Day Population >>> ## ---------------------------------------------------------- >>> ## 1 125 >>> ## 2 156 >>> ## 3 195 >>> ## 4 244 >>> ## 5 305 >>> ## 6 381 >>> ## 7 477 >>> ## 8 596- Hide quoted text - >>> >> - Show quoted text - >> > > > -- http://mail.python.org/mailman/listinfo/python-list