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