Python

Помощь с Python Завершение после выполнения части кода

Совсем недавно начал учить python
пришла идея попробовать ( испытать себя ) в создании простенького калькулятора

В итоге так сяк его написал
Проблема в том что после ввода данных на + после проведения проверки код продолжает идти на -
Можно ли разделить код на части по выполнению
Решил на сложение и все без продолжения в -

-----

what = input ("что делаем? (+, -*, /) ")

a = float (input ("введи первое число: "))
b = float (input ("введи второе число: "))

if what == "+":
c = a + b
print ("результат: " + str(c))
text = input ("Выполнить проверку? (да|нет): ")
if text == "да":
d = c - a
print (str(c) + "-" + str(a))
print ("ответ: " + str(d))
elif text == "нет":
print ("без проверки")

a = float (input ("введи перое число: "))
b = float (input ("введи второе число: "))

if what == "-":
c2 = a - b
print ("результат: " + str(c2))
text = input ("Выполнить проверку? (да|нет): ")
if text == "да":
d = c2 + b
print (str(c2) + "+" + (str(b)))
print ("ответ: " + str(d))
elif text == "нет":
print ("без проверки")

elif what == "*":
c = a * b
print ("результат: " + str(c))

elif what == "/":
c = a / b
print ("результат: " + str(c))

else:
print ("введено неверное значение!")

----

больно не бейте
DK
Dmitry Kuzin
239
В питоне, как и в других языках код выполняется сверху вниз, к тому же ваш код не разнесен по функциям, тем самым код будет продолжать выполняться после вывода одного результата до тех пор, пока вы не получите все результаты от четырех математических действий ( сложения, вычитания, умножения и деления ). И если вы так ничего и не поняли, тогда благодаря использования функций вы имеете возможность обращаться к определенному участку коду, который вы занесли в функцию в нужный момент времени. Вот неплохой пример хорошего кода:

a = float(0.0)
b = float(0.0)
result = float(0.0)
what = str('')
do = str('')
text = str('')
text1 = str('')

def ask(what, a, b):
what = input("Что делаем? (+, -*, /): ")
a = float(input("Введи первое число: "))
b = float(input("Введи второе число: "))
operations(what, result, a, b)

def operations(what, result, a, b):
if what == '+':
result = a + b; text = 'приплюсовать'; text1 = 'к'
elif what == '-':
result = a - b; text = 'отминусовать'; text1 = 'от'
elif what == '*':
result = a * b; text = 'умножить'; text1 = 'на'
elif what == '/':
result = a / b; text = 'поделить'; text1 = 'на'

print('Результат: '+str(result))
check(text, text1, a, b, what, result)

def check(text, text1, a, b, what, result):
do = input('Желаете выполнить проверку? (да | нет): ')
if do.upper() == 'ДА':
print(f'Если {a} {text}({what}) {text1} {b} получится {result}')
elif do.upper() == 'НЕТ':
print('Проверка была отменена')

while True:
ask(what, a, b)
Виктор Швед
Виктор Швед
119
Лучший ответ
Dmitry Kuzin День\вечер добрый
Спасибо за то что тыкнули носом туда куда нужно было)

Есть несколько вопросов и если не затруднит не могли бы помочь с ними
1. в переменных
a = float(0.0)
b = float(0.0)
float(0.0) присваивает любое числовое значение (целое \ дробное) переменной?

2. для чего ставятся ";" в строках

def operations(what, result, a, b):
if what == '+':
result = a + b; text = 'приплюсовать'; text1 = 'к'
elif what == '-':
result = a - b; text = 'отминусовать'; text1 = 'от'
elif what == '*':
result = a * b; text = 'умножить'; text1 = 'на'
elif what == '/':
result = a / b; text = 'поделить'; text1 = 'на'
после второго ввода значений
a = float (input ("введи перое число: "))
b = float (input ("введи второе число: "))
переменная what не меняется после первого ввода..
чесно говоря я не понял сути вопроса
Я даже не знаю правильно ли я расставил отступы в коде. Ты хоть бы в пастебин заливай в следующий раз, непонятно же
А лучше продебаж сам в визуализаторе:
http://www.pythontutor.com/visualize.html#mode=edit
Perec92
Perec92
2 644
Павел Агапов Такой себе ответ как для Мастера.. От того что переменная поменяется ничего не изменится. Единственная причина, это то что код выполняется сверху вниз, а после условия ( + ) идёт условие ( - ).
Привет, вот два решения: первое решает твою проблему, второе демонстрирует, как можно было сократить код.
И, совет, перестань ставить пробелы перед скобками! Пиши не print (), а print().
То есть без пробела перед скобками. Во-первых: режет глаза, во-вторых: python версии 3 не понимает, где аргументы у вызванной функции и выдает ошибку.

Dmitry Kuzin День\вечер добрый
Спасибо за разъяснения и совет