SyntaxError: 'return' outside function

Написал свой первый код(калькулятор), теперь надо чтобы если человек после выбранной функции написал -, то у него повторился код с 1 строки. Мне выдаёт ошибку:

SyntaxError: 'return' outside function.

Что можно придумать,что бы код повторялся с 1 строки?

Код:

    from colorama import init
 
from colorama import Fore, Back, Style
init()
print (Fore.BLACK )
print (Back.WHITE )
k = "-"
while k == "-":
  #Основные переменные
  what = input("Что делаем?(+,-,*,/,**):")
  a = float(input ("Введите первое число:") )
  b = float(input ("Введите второе число:") )
  if what =="+":
    d = float(input ("Введите третье число:") )
    c= a + b + d
    print ("Результат " + str(c) )
  elif what =="-":
    d = float(input ("Введите третье число:") )
    c= a - b - d
    print ("Результат " + str(c) )
  elif what =="*":
    d = float(input ("Введите третье число:") )
    c= a * b * d
    print ("Результат " + str(c) )
  elif what =="/":
    c= a/b
    print ("Результат " + str(c) )
  elif what =="**":
    c= a **b 
    print ("Результат " + str(c) )
  else:
    print("Выбрана неверная функция!!!")
  k =input("Вы хотите выйти?:")
  while k == "-" or k == "нет":

Ответы (2 шт):

Автор решения: dIm0n

В питоне нет великолепной инструкции goto, так что вот так:

from colorama import init
 
from colorama import Fore, Back, Style
init()
print (Fore.BLACK )
print (Back.WHITE )
k = "-"
while k == "-":
  #Основные переменные
  what = input("Что делаем?(+,-,*,/,**):")
  a = float(input ("Введите первое число:") )
  b = float(input ("Введите второе число:") )
  if what =="+":
    d = float(input ("Введите третье число:") )
    c= a + b + d
    print ("Результат " + str(c) )
  elif what =="-":
    d = float(input ("Введите третье число:") )
    c= a - b - d
    print ("Результат " + str(c) )
  elif what =="*":
    d = float(input ("Введите третье число:") )
    c= a * b * d
    print ("Результат " + str(c) )
  elif what =="/":
    c= a/b
    print ("Результат " + str(c) )
  elif what =="**":
    c= a **b 
    print ("Результат " + str(c) )
  else:
    print("Выбрана неверная функция!!!")
  k =input("Вы хотите выйти?:")

Ошибка возникает, потому что вы указали инструкцию return вне функции, а она допускается только в функции.

→ Ссылка
Автор решения: Amunrah
import re

def func(exp, mes, arg=''):
    while not re.match(exp, arg): arg = input(mes)
    return arg

out = False
while not out:
    num1 = func(r'^\d+$', 'Enter first number: ')
    act  = func(r'^[-+*/]$', 'Enter operator: ')
    num2 = func(r'^\d+$', 'Enter second number: ')

    result = eval(num1 + act + num2)

    print(f'{num1} {act} {num2} = {result}')
    out = True if input('Exit? Y/N ').lower() == 'y' else False
→ Ссылка