Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 1, 2016 19:17:29

error654
Зарегистрирован: 2016-07-30
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите разобраться и понять новичку

Господа добрый день, не судите строго и не бейте ногами. Недавно начал изучение Python, делаю задачи, собственно возникают в процессе вопросы, что “ясен пень”. Так вот такой вот баян, программа калькулятор, которая при выборе операций сложения, вычитания, умножения, деления и возведения в степень, запрашивает два числа и выводит результат, а при выборе sin, cos и tan, запрашивает одно число и соответственно так же выводит результат. Привожу свою программу если конечно так это можно назвать, собственно меня смущает какая то ее “громоздкость” что ли. Может кто ни будь из знатоков подскажет более элегантный вариант что ли. Спасибо за внимание.

 import math
oper = str(input("Enter your operation: "))
if oper == 'sin' or oper == 'cos' or oper == 'tan':
    x = float(input("x = "))
    if oper == 'sin':
        print("Your result = ", math.sin(x))
    elif oper == 'cos':
        print("Your result = ", math.cos(x))
    elif oper == 'tan':
        print("Your result = ", math.tan(x))
elif oper == '+'or oper == '-' or oper == '*' or oper == '**' or oper == '/':
    x1 = float(input("x1 = "))
    x2 = float(input("x2 = "))
    if oper == '+':
        print("Your result = ", x1 + x2)
    elif oper == '-':
        print("Your result = ", x1 - x2)
    elif oper == '*':
        print("Your result = ", x1 * x2)
    elif oper == '/':
        print("Your result = ", x1 / x2)
    elif oper == '**':
        print("Your result = ", x1 ** x2)
else:
    print("Unsuported operation")

Отредактировано error654 (Авг. 1, 2016 19:27:49)

Офлайн

#2 Авг. 1, 2016 20:29:26

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2843
Репутация: +  186  -
Профиль   Отправить e-mail  

Помогите разобраться и понять новичку

Используй словари:

 import math
 
TRIG_OPERATOR = { 'sin' :math.sin, "cos": math.cos, "tan":math.tan}
 
oper = str(input("Enter your operation: "))
if oper in TRIG_OPERATOR:
    x = float(input("x = "))
    print("Your result = ", TRIG_OPERATOR[oper](x))
else:
    print("Unsuported operation")



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Отредактировано Rodegast (Авг. 1, 2016 20:31:08)

Офлайн

#3 Авг. 1, 2016 21:19:02

error654
Зарегистрирован: 2016-07-30
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите разобраться и понять новичку

Спасибо большое, так конечно намного лучше !

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version