2017-01-31 5 views
-1
def main(): 

    birthRate = (60/7) # Births in a minute 
    deathRate = (60/13)  # Deaths in a minute 
    immigrantRate = (60/45)  # New immigrants in a minute 
    minutesInaYear = (24 * 60 * 365)  # The number of seconds in a years 
    minutesInaLeapYear = (24 * 60 * 366) 
    currentPopulation = 312032486 
    totalRate = (birthRate - deathRate + immigrantRate) 

    populationIncreaseInaYear = (totalRate * minutesInaYear) # Calculates the increase in population after a year 

    populationInaYear = (currentPopulation + populationIncreaseInaYear) # Total population after a year 

    populationInTwoYears = (currentPopulation + (2 * populationIncreaseInaYear)) 

    populationInThreeYears = (currentPopulation + (3 * populationIncreaseInaYear)) 

    populationInFourYears = (currentPopulation + (4 * populationIncreaseInaYear)) 

    populationInFiveYears = ((populationInFourYears + (totalRate * minutesInaYear)) 

    print("The population after one year is: " , populationInaYear) '''PRINT FUNCTION DOESN'T WORK?''' 

    print("The population after two years is: " , populationInTwoYears) 
    print("The population after three years is: " , populationInThreeYears) 
    print("The population after four years is: " , populationInFourYears) 
    print("The population after five years is: " , populationInFiveYears) 

main() 

Warum funktioniert nicht drucken? Selbst wenn ich alles in der Klammer durch eine Zahl ersetze, sagt es, dass es beim "t" im Druck einen Syntaxfehler gibt. Was ist los?Syntaxproblem mit Drucken auf Python 3

+0

Bitte vergewissern Sie sich, dass Ihr Beitrag vor der Veröffentlichung korrekt formatiert ist. In welcher Zeile tritt dieser Fehler auf? Was ist die genaue Nachricht? – usr2564301

Antwort

2

Sie haben eine nicht angepasste offene Klammer in der Zeile:

populationInFiveYears = ((populationInFourYears + (totalRate * minutesInaYear)) 

entweder entfernen Sie die erste Klammer auf ‚(‘ nach dem ‚=‘ oder einem anderen Klammer addieren ‚)‘ am Ende der Leitung .

0

Sie haben eine extra „(“ am Anfang Ihrer populationInFiveYears Linie

0

Sie benötigen die runde Klammer aus der vorherigen Zeile schließen Der richtige Code ist:..

populationInFiveYears = ((populationInFourYears + (totalRate * minutesInaYear))) 
0

Mit Python tun Berechnungen nicht Klammern benötigen, auch folgt Python automatisch die Aufträge von Operationen, so:

birthRate = 60/7  
deathRate = 60/13 
immigrantRate = 60/45 
minutesInaYear = 24 * 60 * 365 
minutesInaLeapYear = 24 * 60 * 366 
currentPopulation = 312032486 
totalRate = birthRate - deathRate + immigrantRate 

populationIncreaseInaYear = totalRate * minutesInaYear 

populationInaYear = currentPopulation + populationIncreaseInaYear 

populationInTwoYears = currentPopulation + 2 * populationIncreaseInaYear 

populationInThreeYears = currentPopulation + 3 * populationIncreaseInaYear 

populationInFourYears = currentPopulation + 4 * populationIncreaseInaYear 

populationInFiveYears = populationInFourYears + totalRate * minutesInaYear 
#you got an extra bracket after '=' which caused the error 

print("The population after one year is: " , populationInaYear) 
print("The population after two years is: " , populationInTwoYears) 
print("The population after three years is: " , populationInThreeYears) 
print("The population after four years is: " , populationInFourYears) 
print("The population after five years is: " , populationInFiveYears) 

und ich würde dies auch empfehlen tun:

print("The population after one year is: %i" %populationInaYear) 
print("The population after two years is: %i" %populationInTwoYears) 
print("The population after three years is: %i" %populationInThreeYears) 
print("The population after four years is: %i" %populationInFourYears) 
print("The population after five years is: %i" %populationInFiveYears) 

, die den gesamten Float beim Drucken in int konvertiert. Da die Gesamtbevölkerung kein Float sein kann, gibt es keine 0.293283 Personen.

0

Wie bereits gesagt, Sie eine Klammer ) am Ende

populationInFiveYears = ((populationInFourYears + (totalRate * minutesInaYear)) 

fehlt Aber Sie haben noch einen Fehler:

print("The population after one year is: " , populationInaYear) '''PRINT FUNCTION DOESN'T WORK?''' 

Wenn Sie es # verwenden kommentieren wollen

print("The population after one year is: " , populationInaYear) # PRINT FUNCTION DOESN'T WORK? 

''' ist nicht für Kommentare. Es ist ein mehrzeiliger String ...

0

Wenn Sie sich die Fehlermeldung genau ansehen, gibt es ein Caret (^), das auf das Token verweist, das der Parser als Syntaxfehler beansprucht.

File "C:\test.py", line 22 
    print("The population after one year is: " , populationInaYear) '''PRINT FUNCTION DOESN'T WORK?''' 
     ^

Es zeigt auf die print Token. Das bedeutet, dass der Parser print nicht als nächstes Token erwartet hat. Da dies das erste Token in der Zeile ist, gehe zurück zur vorherigen Zeile und suche dort nach dem Problem. Wie andere gezeigt haben, haben Sie in der vorherigen Zeile keine übereinstimmenden Parameter.