
Пожалуйста, помогите сделать, чтобы код принимал только цифры python модуль:def summa(a, b):
return a + bdef raznost(a, b): return a - bdef proizvedenie(a, b): return a * bdef chastnoe(a, b): if a==0 or b==0: print("Деление на 0") else: return a / b summa()основной файл:import mainprint('Добро пожаловать в консольный калькулятор!')while True: print('Введите операцию:') print('1 - Сложение') print('2 - Вычитание') print('3 - Умножение') print('4 - Деление') print('0 - Выход') operation = int(input()) if operation == 0: break print('Введите первое число:') x = int(input()) print('Введите второе число:') y = int(input()) if operation == 1: result = main.summa(x, y) elif operation == 2: result = main.raznost(x, y) elif operation == 3: result = main.proizvedenie(x, y) elif operation == 4: result = main.chastnoe(x, y) else: print('Ошибка ввода!') continue print('Результат: ', result)

Ответы на вопрос

Відповідь:
Вы можете использовать методы isdigit() или isnumeric() для проверки того, что пользователь вводит только цифры. Вот как это можно сделать:
import main
print('Добро пожаловать в консольный калькулятор!')
while True:
print('Введите операцию:')
print('1 - Сложение')
print('2 - Вычитание')
print('3 - Умножение')
print('4 - Деление')
print('0 - Выход')
operation = input()
if not operation.isdigit():
print('Ошибка ввода! Введите число.')
continue
operation = int(operation)
if operation == 0:
break
print('Введите первое число:')
x = input()
if not x.isdigit():
print('Ошибка ввода! Введите число.')
continue
x = int(x)
print('Введите второе число:')
y = input()
if not y.isdigit():
print('Ошибка ввода! Введите число.')
continue
y = int(y)
if operation == 1:
result = main.summa(x, y)
elif operation == 2:
result = main.raznost(x, y)
elif operation == 3:
result = main.proizvedenie(x, y)
elif operation == 4:
result = main.chastnoe(x, y)
else:
print('Ошибка ввода!')
continue
print('Результат: ', result)
Здесь мы используем метод isdigit() для проверки того, что операция, x и y состоят только из цифр. Если один из них содержит символы, то мы выводим сообщение об ошибке и пропускаем итерацию цикла. Если все в порядке, то преобразуем x и y в целые числа и выполняем операцию.



В коде, который вы предоставили, есть несколько проблем. 1. В модуле main вам необходимо добавить проверку на то, чтобы введенные значения были цифрами. Можно использовать метод isdigit() для проверки каждого символа в строке. Если хотя бы один символ не является цифрой, то вы можете вывести сообщение об ошибке и вернуть None.
2. В основном файле вы используете переменные operation, x, y и result без предварительной инициализации. Необходимо добавить их инициализацию перед использованием.
3. В цикле while вы не сбрасываете значение переменной result после каждой операции. Это может привести к неправильным результатам. Рекомендуется добавить строку result = 0 перед вводом операции.
4. Вместо использования continue в блоке else, можно добавить сообщение об ошибке и пропустить текущую итерацию цикла.
Исправленный код может выглядеть следующим образом:
Модуль main:
def summa(a, b): if not a.isdigit() or not b.isdigit(): print("Ошибка ввода!") return None return int(a) + int(b)
def raznost(a, b): if not a.isdigit() or not b.isdigit(): print("Ошибка ввода!") return None return int(a) - int(b)
def proizvedenie(a, b): if not a.isdigit() or not b.isdigit(): print("Ошибка ввода!") return None return int(a) * int(b)
def chastnoe(a, b): if not a.isdigit() or not b.isdigit(): print("Ошибка ввода!") return None if a == 0 or b == 0: print("Деление на 0") return None return int(a) / int(b)
Основной файл:
import main
print('Добро пожаловать в консольный калькулятор!')
while True: print('Введите операцию:') print('1 - Сложение') print('2 - Вычитание') print('3 - Умножение') print('4 - Деление') print('0 - Выход') operation = int(input()) if operation == 0: break print('Введите первое число:') x = input() print('Введите второе число:') y = input() result = 0 if operation == 1: result = main.summa(x, y) elif operation == 2: result = main.raznost(x, y) elif operation == 3: result = main.proizvedenie(x, y) elif operation == 4: result = main.chastnoe(x, y) else: print('Ошибка ввода!') continue if result is not None: print('Результат:', result)


Похожие вопросы
Топ вопросов за вчера в категории Другие предметы
Последние заданные вопросы в категории Другие предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili