что мне не хватает для этой функции?

Я пытаюсь получить информацию о том, когда в нем говорится «сколько гамбургеров вы хотите», но я не получаю эту возможность, когда запускаю программу. что мне не хватает в основной функции? при запуске программы ошибки не появляются.

def main():
      endProgram = 'no'

      while endProgram == 'no': 
        totalFry = 0
        totalBurger = 0
        totalSoda = 0 
        endOrder = 'no'
        while endOrder == 'no':
          print ('Enter 1 for Yum Yum Burger')
          print ('Enter 2 for Grease Yum Fries')
          print ('Enter 3 for Soda Yum')
          option = input('Enter now -> ')
          if option == 1:
            totalBurger = getBurger(totalBurger)
          elif option == 2: 
            totalFry = getFries(totalFry)
          elif option == 3:
            totalSoda = getSoda(totalSoda)
          endOrder = input ('would you like to end your order? Enter No if you want to order more items: ')

        total = calcTotal(totalBurger, totalFry, totalSoda)
        printRecipt(total)

        endProgram= input ('do you want to end program? (enter no to process new order)')


    def getBurger(totalBurger):
      burgerCount = input ('enter number of burgers you want: ')
      totalBurger = totalBurgers + burgerCount * .99
      return totalBurgers

    def getFry(totalFry):
      fryCount = input ('Enter How Many Fries You want: ')
      totalFry = totalFries + fryCount * .79
      return totalFries

    def getSoda(totalSoda):
      sodaCount = input('enter number of sodas you would want: ')
      totalSoda = totalSoda + sodaCount * 1.09
      return totalSoda

    def calcTotal(totalBurger, totalFry, totalSoda):
      subTotal = totalBurger + totalFry + totalSoda
      tax = subTotal * .06
      total = subTotal + tax
      return total

    def printRecipt(total):
      print ('your total is $', total)

    main()

person relentless    schedule 27.02.2020    source источник
comment
всем спасибо! int исправил проблему !!   -  person relentless    schedule 27.02.2020
comment
если ответ помог вам решить вашу проблему, можете ли вы отметить его как принятый? Спасибо   -  person quizdog    schedule 27.02.2020


Ответы (3)


Вместо:

if option == 1:

пытаться:

if options == '1'

или вы можете сделать:

option = int(input('Enter now -> ')

ввод возвращает строку, а не int, поэтому операторы if не запускаются.

person AviatingFotographer    schedule 27.02.2020

Вы смешиваете строки и int в своем сравнении

Например, в вашем коде:

 option = input('Enter now -> ')
 if option == 1:
     totalBurger = getBurger(totalBurger)

значение, возвращаемое функцией input (), всегда является строкой, поэтому при сравнении его с целым числом (1) результат будет всегда ложным.

Если вы хотите использовать пользовательский ввод как целое число, вам нужно сначала преобразовать его в единицу:

 option = input('Enter now -> ')
 option = int(option)
 if option == 1:
     totalBurger = getBurger(totalBurger)

Вам нужно будет внести аналогичные изменения для других вызовов input ().

person quizdog    schedule 27.02.2020
comment
что мне делать, чтобы это исправить? Отслеживание (последний вызов последним): файл D: \ CISP 300 \ Lab \ Lab5-5.pyfile.py, строка 53, в ‹module› main (), файл D: \ CISP 300 \ Lab \ Lab5-5.pyfile. py, строка 16, в основном файле totalBurger = getBurger (totalBurger) Файл D: \ CISP 300 \ Lab \ Lab5-5.pyfile.py, строка 31, в getBurger totalBurger = (totalBurger + burgerCount) * .99 TypeError: неподдерживаемый тип операнда (s) для +: 'int' и 'str' - person relentless; 27.02.2020
comment
Это та же проблема, что и в вашем первоначальном вопросе. Всякий раз, когда вы получаете что-то из input (), это будет STRING, поэтому в этом случае вы пытаетесь добавить STRING в INTEGER, поэтому вы получаете исключение TypeError - оператор плюс (+) говорит, что он не знает как добавить СТРОКУ в ЦЕЛОЕ. Итак, как я уже упоминал в своем ответе, вам нужно преобразовать возвращаемое значение из input () в INTEGER везде в вашем коде. Итак, в этом случае: burgerCount = int (input ('введите количество гамбургеров, которое вы хотите:')) поможет - person quizdog; 27.02.2020

Строка option = input('Enter now -> ') принимает значение как строку.

Когда вы проверяете option==1, вы сравниваете целое число со строкой. По этой причине ни одно из условий не выполняется, и вы не можете принимать дополнительные данные.

Попробуйте заменить option = input('Enter now -> ') на option = int(input('Enter now -> ')), и все должно работать нормально.

person Kuzan    schedule 27.02.2020