2016-11-02 2 views
-1

数式を認識し、値を入力して結果を表示するプログラムを作成したいと思います。
EVAL機能なしPython:数式とその変数の認識

  1. プログラムは4つの変数を認識する必要があります。
  2. プログラムは算術演算子(+、 - 、*、/、[^、()] - > extraを認識する必要があります)
  3. r = a(+、 - 、*、/)b ...、方程式は値を解析し、値を求めて結果を出力します。

私が今持っていることは次のとおりです。

formul=raw_input('Enter your formula: ") 
a=input("Value a: ") 
b=input("Value b: ") 
c=input("Value c: ") 
d=input("Value d: ") 
+0

のようなものであるようなものは、これは大学の割り当てですか? – BernardoGO

+0

両方の答えは 'eval()'を使っています。それはあなたとOKですか、本当にその機能を避ける必要がありますか?また、与えられたコードは、演算子を評価するために絶対に何もしません。もっと持ってない?そうでない場合は、この課題を処理するのに十分に知っていますか? –

答えて

0
formula=formula.replace("a", str(a)).replace("b",str(b)).replace("c", str(c)).replace("d", str(d)) 

print eval(formula) 
1

これは素晴らしいものです、あなたはevalを使用し、NameErrorがある毎回をキャッチすることができます。この

import re 

variables = {} 
formula = raw_input('Insert formula: ') 
while True: 
    try: 
     res = eval(formula, variables) 
    except NameError as e: 
     v = re.match('name .(\w+). is not defined', e.message).group(1) 
     variables[v] = input('insert value for %s: ' % v) 
     continue 
    print ("%s = %s" % (formula, res)) 
    break 

出力は

Insert formula: me + you 
insert value for me: 10 
insert value for you: 100 
me + you = 110 
+0

これは4つの変数を処理しますか? –

+0

はい、それは実際には任意の数の変数と操作を行います – aleivag

関連する問題