Форум сайта python.su
0
Добрый день.Недавно начал изучать python.Создал самый простой и пока что сырой калькулятор…
while True: print("Options:") print("Enter 'add' to add two numbers") print("Enter 'subt' to subtract two numbers") print("Enter 'multi' to multiply two numbers") print("Enter 'divide' to divide two numbers") print("Enter 'percent' to find it") print("Enter 'sqrt' to find it") print("Enter 'quit' to end the program") user_input = input(": ") if user_input == "quit": break elif user_input == "add": try: num1 = float(input("Enter a number: ")) num2 = float(input("Enter another number: ")) except ValueError: print("Not an integer") continue result = str(num1 + num2) print("The answer is " + result) elif user_input == "subt": num1 = float(input("Enter a number: ")) num2 = float(input("Enter another number: ")) result = str(num1 - num2) print("The answer is " + result) elif user_input == "multi": num1 = float(input("Enter a number: ")) num2 = float(input("Enter another number: ")) result = str(num1 * num2) print("The answer is " + result) elif user_input == "divide": num1 = float(input("Enter a number: ")) num2 = float(input("Enter another number: ")) result = str(num1 / num2) print("The answer is " + result) elif user_input == "percent": num1 = float(input("Enter a number: ")) percent = float(input("Enter percent: ")) result = str(num1 / 100 * percent) print("The answer is " + result) elif user_input == "sqrt": num1 = float(input("Enter a number: ")) import math result = str(math.sqrt(num1)) print("The answer is " + result) else: print("Unknown input")
try: num1 = float(input("Enter a number: ")) num2 = float(input("Enter another number: ")) except ValueError: print("Not an integer") continue
Офлайн
857
Выведи ввод чисел наверх. После того как выведешь, сделаешь функцию ввода с проверкой внутри. В ветвях должны остаться только операции над уже введёнными числами.
Офлайн
0
py.user.nextСпасибо за помощь,но я только начал.Не понял,как это сделать
Выведи ввод чисел наверх. После того как выведешь, сделаешь функцию ввода с проверкой внутри. В ветвях должны остаться только операции над уже введёнными числами.
Офлайн
857
Вот смотри. Например, тебе надоело вводить данные и ты хочешь просто записать их в файл и вызвать свою программу для этого файла. Как ты это сделаешь? Да никак. Везде понапихан ввод из консоли. То же самое насчёт вывода результата. Ты выводишь в консоль, а нужно будет вывести в файл или вообще передать по сети или на сайт.
Соответственно, нужно разделить такие вещи, как ввод, вычисление и вывод. Тогда любую часть можно поменять, можно её выбирать по условию. Если есть флажок где-то “вводить из файла”, то вводить данные из файла. Если есть флажок где-то “выводить в файл”, то выводить данные в файл. А если есть флажок где-то “вычислить в поле комплексных чисел”, то произвести вычисление с учётом того, что квадратный корень из отрицательного числа существует.
Поэтому нужно отделить друг от друга ввод, вычисления и вывод. Они должны находиться в разных местах кода.
Пример ввода чисел
>>> def input_numbers(message, how_many): ... out = [] ... for i in range(how_many): ... string = input(message.format(i + 1)) ... # Здесь ты можешь проверить, что ты там навводил ... out.append(float(string)) ... return out ... >>> def f(): ... # Здесь ты можешь выбрать, сколько чисел вводить и какое сообщение ... # должно выводиться на экран ... numbers = input_numbers('Введите число {}: ', 3) ... return numbers ... >>> f() Введите число 1: 123 Введите число 2: 4.5 Введите число 3: -6.789 [123.0, 4.5, -6.789] >>>
Отредактировано py.user.next (Июль 10, 2019 04:04:37)
Офлайн
0
py.user.nextБольшое спасибо за столь большое и подробное объяснение!
Вот смотри. Например, тебе надоело вводить данные и ты хочешь просто записать их в файл и вызвать свою программу для этого файла. Как ты это сделаешь? Да никак. Везде понапихан ввод из консоли. То же самое насчёт вывода результата. Ты выводишь в консоль, а нужно будет вывести в файл или вообще передать по сети или на сайт.Соответственно, нужно разделить такие вещи, как ввод, вычисление и вывод. Тогда любую часть можно поменять, можно её выбирать по условию. Если есть флажок где-то “вводить из файла”, то вводить данные из файла. Если есть флажок где-то “выводить в файл”, то выводить данные в файл. А если есть флажок где-то “вычислить в поле комплексных чисел”, то произвести вычисление с учётом того, что квадратный корень из отрицательного числа существует.Поэтому нужно отделить друг от друга ввод, вычисления и вывод. Они должны находиться в разных местах кода.Пример ввода чисел
Судя по дате вашей регистрации вы невероятно опытный человек.
Отредактировано Whiteflower (Июль 10, 2019 11:49:45)
Офлайн