2017-02-11 8 views
1

Итак, я пытаюсь создать своего рода калькулятор, который обрабатывает все типы уравнений. Все, что вам нужно сделать, это ввести то, что вам нужно, и задаст вам ряд вопросов, основанных на том, какое уравнение вам нужно помочь, и оно вернет значение. Я пытаюсь сделать так, чтобы при вводе определенной строки она задавала определенный ряд вопросов. Однако он задает все вопросы независимо от того, что я ввожу. Я использую Python 3.6.Python - оператор if, если вход является определенной строкой

whichEquation = input("What are you having trouble with? ") 

if whichEquation: 
    "interest" 

r = float(input("What is the interest rate?: ")) 
C = float(input("Deposit cash: ")) 
t = float(input("For how many years will your deposit be invested?: ")) 
n = float(input("How many times per year is the interest compounded?: ")) 

interest = C * (1 + r/n)**(n*t) 


print("Your future value is: ",interest,"dollars") 

if whichEquation: 
    "slope" 

y1 = float(input("First y point: ")) 
y2 = float(input("Second y point: ")) 
x1 = float(input("First X point: ")) 
x2 = float(input("Second X point: ")) 

slope = (y2 - y1)/(x2 - x1) 

print("The slope is:",slope) 

Так как я бы только показать, либо «крутизны» уравнение или «интерес» уравнение, если whichEquation является наклон или интерес.

+0

'if whichEquation:" interest "' -> Как вы думаете, что означает этот код? То же самое относится к 'if whichEquation:" slope "'. – ForceBru

+0

Мое понимание заключалось в том, что если какой-то элемент представляет собой строку «интерес», то это будет делать определенную вещь. То же самое для склона. –

+0

Это 'if whichEquation:' означает ', если whoEquation является _truthy_, т. Е. Не пустая строка, а не ноль и т. Д., А затем выполнить блок', поэтому в вашем случае блок состоит из простой строки, и его запуск ничего не делает. – ForceBru

ответ

2

Ваш отступы неправильно, оно должно быть

if whichEquation == "slope": 
    y1 = float(input("First y point: ")) 
    y2 = float(input("Second y point: ")) 
    x1 = float(input("First X point: ")) 
    x2 = float(input("Second X point: ")) 

    slope = (y2 - y1)/(x2 - x1) 

    print("The slope is:",slope) 

Это потому, что все, что приходит с отступом под, если заявление это действие, если заявление делает.

Это относится к обоим операторам IF, а не только к одному.

И, наконец, оператор проверяет А.Н. IF, если элемент соответствует что-то конкретное, используя «==» оператор, который является в основном «равно», так if whichEquation == "slope" такая же, как if (what ever is stored in) whichEquation is equal to "slope"

+0

Спасибо, это действительно помогло! Сегодня я начал питон, поэтому спасибо. –

+0

Не беспокойтесь! :) Python - отличный язык, я рад, что это помогло. – ocelot

+0

@SaeedD: Так почему же вы не читаете официальный учебник? В главе 4 объясняются ['if' statements] (https://docs.python.org/3/tutorial/controlflow.html#if-statements). – Matthias

0

самый короткий путь для решения это принести все сопутствующее код под если блок

if whichEquation == "interest": 
    r = float(input("What is the interest rate?: ")) 
    C = float(input("Deposit cash: ")) 
    t = float(input("For how many years will your deposit be invested?: ")) 
    n = float(input("How many times per year is the interest compounded?: ")) 
    interest = C * (1 + r/n)**(n*t) 
    print("Your future value is: ",interest,"dollars") 

надеюсь, что это поможет

+0

Да, это помогло, спасибо! –

0

Вы можете форматировать ваш код так:

whichEquation = input("What are you having trouble with? ") 

if whichEquation == "interest": 

    r = float(input("What is the interest rate?: ")) 
    C = float(input("Deposit cash: ")) 
    t = float(input("For how many years will your deposit be 
    invested?: ")) 
    n = float(input("How many times per year is the interest compounded?: ")) 

    interest = C * (1 + r/n)**(n*t) 


    print("Your future value is: ",interest,"dollars") 

elif whichEquation == "slope": 
     y1 = float(input("First y point: ")) 
     y2 = float(input("Second y point: ")) 
     x1 = float(input("First X point: ")) 
     x2 = float(input("Second X point: ")) 

     slope = (y2 - y1)/(x2 - x1) 

     print("The slope is:",slope) 

Таким образом, ваш пробельные правильно и правильно прочитать каждое условие

+0

Спасибо! Это сработало. –

0

Я полагаю, от того, что вы говорите, вы хотите, чтобы программа задавать вопросы в зависимости от выбранного входа .

Для этого вы должны добавить ==, чтобы проверить, равны ли две переменные.

if whichEquation == "slope": 

Это связано с тем, что python был несколькими способами тестирования переменных с помощью stat. Некоторые распространенные из них, которые больше математики связаны, являются:

* Менее < *

* Больше> *

Меньше или равно < =

Больше или равно> =

Equals ==

Не равно! =

Я предлагаю идти к This python 3 doc, который демонстрирует разные IF условия отчетности.