2016-01-22 2 views
0

Программа позволит мне вводить значения, но они не являются вычислениями и не печатаются. Я перемещал вход endProgram во все стороны, и он просто превращает его в бесконечный цикл.Пока цикл не работает в Python

def main(): 
endProgram = "no" 
while endProgram == "no": 
     totalBottles = getBottles() 
     totalPayout = calcPayout(totalBottles) 
     printInfo = (totalBottles, totalPayout) 
     endProgram = raw_input("Do you want to end the program? Enter yes or no:") 

def getBottles(): 
    counter = 1 
    totalBottles = 0 
    todayBottles = 0 

    while counter <= 7: 
     todayBottles = input("Enter number of bottles for today:") 
     totalBottles = totalBottles + todayBottles 
     counter = counter + 1 
    return totalBottles 

def calcPayout(totalBottles): 
    totalPayout = 0 
    totalPayout = totalBottles * .10 
    return totalPayout 
def printInfo(totalBottles,totalPayout): 
    print "The total bottles collected is:",totalBottles 
    print "The total payout is $ :",totalPayout 
+0

Вы называете 'главный()' где-нибудь? Как стоит, этот код выйдет без каких-либо действий. – tdelaney

+0

Да main() находится в конце. Наверное, это не получилось на копии. – Matt331

ответ

3

Для печати вы должны удалить = в строке (потому что он присваивает значения переменной)

printInfo = (totalBottles, totalPayout) 

Он должен быть:

printInfo(totalBottles, totalPayout) 

Этот способ вызова функции с переменными ,

+0

Я не могу поверить, что это был простой промах. Огромное спасибо!! – Matt331

0

Вы назначаете tuple (totalBottles, totalPayout) функции, поэтому это не работает.

printInfo является функцией , что печатает только и не имеет возвратов ... поэтому изменить заявление

printInfo = (totalBottles, totalPayout) 

для printInfo(totalBottles, totalPayout)

Смежные вопросы