Проблема Вопрос по калькулятору Python

S

sasha20l

Не могу закончить калькулятор:

Код:
'''
print("-"*60)
info = ''' Какой вид вычисления Вам необходим
+ введите при сложении
- введите при вычитании
* введите при умножении
/ введите при делении               
'''
print (info)
print("-"*60)
items = ["+", "-", "*", "/"]
TrueX = True
TrueY = True
while TrueX :
    input_info = input("введите вид вычисления ")
    if input_info in items:
        print ("Молодец! значение ",input_info," принято")
        TrueX = False
    else:
        print ("значение не верно")
print("-"*60)
while TrueY :
    input_int1 = float(input("введите первое число = "))
    input_int2 = float(input("введите второе число = "))
    if input_int1 or input_int2 == float():
        print ("Молодец! значения ",input_int1," и ",input_int2," приняты")
        TrueY = False
    else:
        print ("значения не верны")
if input_info =="+":
    finish = input_int1 + input_int2
    print("-"*60)
    print ("Ответ ",input_int1,input_info,input_int2,"=",finish)
elif input_info =="-":
    finish = input_int1 - input_int2
    print("-"*60)
    print ("Ответ ",input_int1,input_info,input_int2,"=",finish)
elif input_info =="/":
    finish = input_int1 / input_int2
    print("-"*60)
    print ("Ответ ",input_int1,input_info,input_int2,"=",finish)
elif input_info =="*":
    finish = input_int1 * input_int2
    print("-"*60)
    print ("Ответ ",input_int1,input_info,input_int2,"=",finish)

Вот тут:

Код:
while TrueY :
    input_int1 = float(input("введите первое число = "))
    input_int2 = float(input("введите второе число = "))
    if input_int1 or input_int2 == float():
        print ("Молодец! значения ",input_int1," и ",input_int2," приняты")
        TrueY = False
    else:
        print ("значения не верны")

Вот тут хочу чтобы была проверка на ввод, проверяла вводимые значения и если они не float
то вновь просила ввести значения, а если float то цикл заканчивался.
Но т.к я дно кода, то наваял это место криво. Тут можно нечто подобное написать?
Или надо обязательно применять try и except.

Готов к критике, спасибо!
 

explorer

Platinum
05.08.2018
1 080
2 475
BIT
0
Не могу закончить калькулятор:

Вот тут хочу чтобы была проверка на ввод, проверяла вводимые значения и если они не float
то вновь просила ввести значения, а если float то цикл заканчивался.
Но т.к я дно кода, то наваял это место криво. Тут можно нечто подобное написать?
Или надо обязательно применять try и except.

Готов к критике, спасибо!
Во-первых первую строку удали )))
А чем не устроил try и except?
ЗДЕСЬ моя старая программка, в которой как раз куча "защит от дурака". Поизучай, и всё получится!
 
  • Нравится
Реакции: Voron и sasha20l

hlop

One Level
13.01.2017
9
10
BIT
1
зачем изобретать велосипед? используй eval()
 
S

SUPERJABKA

Вот мой старый проект,он с защитой от дурака))


print('Калькулятор V_0.1')
to=False
do=None
result=None
while do not in['-','+','*',':']:
try:
do=input('choose ( - / + / * / : ) : ')
except Exception:
print('please repeat your choose')
#выбор действия
while to != True:
try:
num_1=float(input('input first number:'))
num_2=float(input('input second number:'))
if do=='-':
result=num_1-num_2
if do=='+':
result=num_1+num_2
if do=='*':
result=num_1*num_2
if do==':':
result=num_1/num_2
to=True
except Exception as e:
print('Re-Enter numbers')
print('result:{}'.format(result))
 

KaPToHHbIu_EHoT

Green Team
08.11.2020
79
13
BIT
0
калькулятор в одну строку :
print(eval(input("Введите первое число : ") + input("Введите действие : ") + input("Введите второе число : ") ))
 

BPOH

Member
26.01.2017
10
0
BIT
0
калькулятор в одну строку :
print(eval(input("Введите первое число : ") + input("Введите действие : ") + input("Введите второе число : ") ))
Странно что-то он не смог произвести умножение по клингонски
Python:
print(eval(input("Введите первое число : ") + input("Введите действие : ") + input("Введите второе число : ") ))
Введите первое число : >? 10
Введите действие : >? kj
Введите второе число : >? 20
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "<string>", line 1
    10kj20
      ^
SyntaxError: unexpected EOF while parsing
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!