Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Вопрос про Python

данил батискаф Знаток (259), открыт 4 дня назад
Я создал простенький консольный калькулятор, организовал проверку на корректность ввода операции, то есть если вместо операции пользователь вводит сторонний символ, то программа просит его повторить ввод. Так вот, мне теперь нужно сделать проверку, что пользователь действительно ввел число, но не могу сообразить как.

Код:

import time

print('*'* 30, 'Калькулятор v1.0', '*' * 30)
oper = input('Выберите операцию(*, /, +, -, ^): ')
while oper not in '+-*/^' or oper == '':
oper = input('Выберите операцию(*, /, +, -, ^): ')

a = int(input('Введите первое число: '))
b = int(input('Введите второе число: '))

flag = True

while flag:
if oper == '*':
print('Результат умножения чисел: ', a*b)
elif oper == '/':
print('Результат деления чисел: ', a/b)
elif oper == '+':
print('Результат сложения чисел: ', a+b)
elif oper == '-':
print('Результат вычитания чисел: ', a+b)
elif oper == '^':
print('Результат возведения первого числа в степень второго числа: ', a**b)

time.sleep(2)

command = input('Продолжить вычисления (y/n)? ')
if command == 'n':
flag = False
if command == 'y':
oper = input('Выберите операцию(*, /, +, -): ')
a = int(input('Введите первое число: '))
b = int(input('Введите второе число: '))
Дополнен 4 дня назад
мне удалось решить проблему, добавив в код 2 флага:

aflag = True
bflag = True

a = input('Введите первое число: ')
while aflag:
try:
a = int(a)
aflag = False
except ValueError:
a = input('Вы ввели не число, введите первое число заново: ')

b = int(input('Введите второе число: '))
while bflag:
try:
b = int(b)
bflag = False
except ValueError:
b = input('Вы ввели не число, введите второе число заново: ')
1 ответ
Оракул Оракул (62385) 4 дня назад
 '666'.isdigit() 
ПапаВысший разум (145583) 4 дня назад
Вещественные числа и отрицательные числа рыдают в сторонке.
Похожие вопросы