2017-02-14 48 views
-3

Я занимаюсь питоном, и я хочу найти правильные операторы, чтобы найти, когда приведенное ниже уравнение равно 120 35 (оператор) 5 (оператор) 20 (оператор) 5 (оператор), например 35 + 5 + 20 + 35 = 120Как найти правильные операторы для уравнения, используя python?

Я написал этот скрипт в python, но он, похоже, не производит. Уловка заключается в том, что я не могу использовать деление ('/'). Кронштейны также могут быть включены.

opr = ["+", "-", "*"] 

for op1 in opr: 
    for op2 in opr: 
    for op3 in opr: 
     testStr = "35" + op1 + "5" + op2 + "20" + op3 + "5" 
     if eval(testStr) == 120: 
      print(testStr) 
      break 
+0

Что означает «не похоже»? –

+2

Знаете ли вы, что вы положили '' 5 "' вместо '35 '' в конце? – user2357112

+1

У вас есть 35 + 5 + 20 + 35 в тексте и 35, 5, 20, * 5 * в коде. Ни словом, ни 120. Но если вы исправите это, вы получите решение. –

ответ

0

Я изменил свой код, чтобы он напечатает тестовую строку и результат с каждым контуром, и это то, что я получил:

35+5+20+5 evaluates to: 65 
35+5+20-5 evaluates to: 55 
35+5+20*5 evaluates to: 140 
35+5-20+5 evaluates to: 25 
35+5-20-5 evaluates to: 15 
35+5-20*5 evaluates to: -60 
35+5*20+5 evaluates to: 140 
35+5*20-5 evaluates to: 130 
35+5*20*5 evaluates to: 535 
35-5+20+5 evaluates to: 55 
35-5+20-5 evaluates to: 45 
35-5+20*5 evaluates to: 130 
35-5-20+5 evaluates to: 15 
35-5-20-5 evaluates to: 5 
35-5-20*5 evaluates to: -70 
35-5*20+5 evaluates to: -60 
35-5*20-5 evaluates to: -70 
35-5*20*5 evaluates to: -465 
35*5+20+5 evaluates to: 200 
35*5+20-5 evaluates to: 190 
35*5+20*5 evaluates to: 275 
35*5-20+5 evaluates to: 160 
35*5-20-5 evaluates to: 150 
35*5-20*5 evaluates to: 75 
35*5*20+5 evaluates to: 3505 
35*5*20-5 evaluates to: 3495 
35*5*20*5 evaluates to: 17500 

Как вы можете видеть, это не имеет значение 120.