Не могу найти проблему в моем цикле while для моего калькулятора - PullRequest
0 голосов
/ 28 сентября 2019

Мой код начинается здесь

Endprogram = "y"
while endprogram.lower() == "y":

    num1 = (float(input("")))
    opdracht= (input(""))
    num2 = (float(input("The answer is:  ")))

    plus = (float(num1+num2))
    min = (float(num1-num1))
    maal = (float(num1*num2))
    gedeeld = (float(num1/num2))

    if opdracht == "+":
        print (float(plus))
    elif opdracht == "-":
        print (float(min))
    elif opdracht == "*":
        print (float(maal))
    elif opdracht == "/":
        print (float(gedeeld))
    elif opdracht != "+""-""*""/":
        print ("Not a valid operator"

    Endofprogram = input("another one?y/n:")
    if endofprogram == "n":
        break
            print ("the end")

Привет, ребята. Итак, у меня проблема в том, что я продолжаю получать синтаксическую ошибку в строке 21, где говорится, что еще один год.Так что мой цикл не работает.Все остальное работает отлично.Я работаю в Python 3.x Спасибо заранее.И да, я посмотрел его прежде чем приехать сюда.

1 Ответ

0 голосов
/ 30 сентября 2019

Помимо нескольких ошибок программирования, которые я вижу, я считаю, что ваша синтаксическая ошибка заключается в том, что до Endofprogram = input("another one?y/n:") у вас есть незакрытая скобка в строке print ("Not a valid operator"

Я исправил несколько вещейкак использование min, которое является зарезервированным ключевым словом в Python, и num1-num1, это всегда будет 0!Для ввода num1 и num2 вы должны фактически подсказать пользователю, что вводить.Также существует непоследовательное использование прописных и строчных букв e в Endofprogram/endofprogram.Использование break в вашем цикле перед оператором print означает, что оно никогда не достигнет его.Не говоря уже о том, что оператор print был излишне отступ.

flag = True
while flag:
  num1 = float(input("Input first number: "))
  opdracht = input("Input operator: ")
  num2 = float(input("Input second number: "))

  ans = "" 
  if opdracht == "+":
      ans = num1+num2
  elif opdracht == "-":
      ans = num1-num2
  elif opdracht == "*":
      ans = num1*num2
  elif opdracht == "/":
      ans = num1/num2
  elif opdracht != "+""-""*""/":
      print ("Not a valid operator")

  print("Answer: " + str(ans))

  continuePrompt = input("Another one?y/n:")
  if continuePrompt.lower() == "n":
    print("The end")
    flag = False
  elif continuePrompt.lower() != "y":
    print("Invalid input. I'll continue...")
...