Вопрос задан 22.11.2023 в 21:01. Предмет Другие предметы. Спрашивает Борисовский Владислав.

Пожалуйста, помогите сделать, чтобы код принимал только цифры 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)
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Бекузакова Жазира.

Відповідь:

Вы можете использовать методы 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 в целые числа и выполняем операцию.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

В коде, который вы предоставили, есть несколько проблем. 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)

0 0

Похожие вопросы

Топ вопросов за вчера в категории Другие предметы

Последние заданные вопросы в категории Другие предметы

Задать вопрос