Совсем недавно начал учить 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 ("введено неверное значение!")
----
больно не бейте
Python
Помощь с Python Завершение после выполнения части кода
В питоне, как и в других языках код выполняется сверху вниз, к тому же ваш код не разнесен по функциям, тем самым код будет продолжать выполняться после вывода одного результата до тех пор, пока вы не получите все результаты от четырех математических действий ( сложения, вычитания, умножения и деления ). И если вы так ничего и не поняли, тогда благодаря использования функций вы имеете возможность обращаться к определенному участку коду, который вы занесли в функцию в нужный момент времени. Вот неплохой пример хорошего кода:
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)
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)
после второго ввода значений
a = float (input ("введи перое число: "))
b = float (input ("введи второе число: "))
переменная what не меняется после первого ввода..
чесно говоря я не понял сути вопроса
Я даже не знаю правильно ли я расставил отступы в коде. Ты хоть бы в пастебин заливай в следующий раз, непонятно же
А лучше продебаж сам в визуализаторе:
http://www.pythontutor.com/visualize.html#mode=edit
a = float (input ("введи перое число: "))
b = float (input ("введи второе число: "))
переменная what не меняется после первого ввода..
чесно говоря я не понял сути вопроса
Я даже не знаю правильно ли я расставил отступы в коде. Ты хоть бы в пастебин заливай в следующий раз, непонятно же
А лучше продебаж сам в визуализаторе:
http://www.pythontutor.com/visualize.html#mode=edit
Павел Агапов
Такой себе ответ как для Мастера.. От того что переменная поменяется ничего не изменится. Единственная причина, это то что код выполняется сверху вниз, а после условия ( + ) идёт условие ( - ).
Привет, вот два решения: первое решает твою проблему, второе демонстрирует, как можно было сократить код.
И, совет, перестань ставить пробелы перед скобками! Пиши не print (), а print().
То есть без пробела перед скобками. Во-первых: режет глаза, во-вторых: python версии 3 не понимает, где аргументы у вызванной функции и выдает ошибку.

И, совет, перестань ставить пробелы перед скобками! Пиши не print (), а print().
То есть без пробела перед скобками. Во-первых: режет глаза, во-вторых: python версии 3 не понимает, где аргументы у вызванной функции и выдает ошибку.


Dmitry Kuzin
День\вечер добрый
Спасибо за разъяснения и совет
Спасибо за разъяснения и совет
Похожие вопросы
- Можно помощь в Python Коде.
- Питон 3 напишите часть кода!!
- Нужна помощь по PYTHON,заранее спасибо
- Нужна помощь в python
- Срочная помощь по Python
- Можете помочь! Нужен код для Python, что бы он заменял определенный текст в файле
- Где ошибка в коде? (Python)
- Переписать код из С++ в Python
- Что не так в моем коде? Крестики - Нолики на python
- Python удаление кода через некоторое промежуток времени
Спасибо за то что тыкнули носом туда куда нужно было)
Есть несколько вопросов и если не затруднит не могли бы помочь с ними
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 = 'на'