Я действительно программист-любитель, пытающийся самостоятельно выучить python. Большая часть этого кода гуглится. Я понятия не имею, что я делаю.
Я получаю сообщение об ошибке "деление числа на ноль"
Я пытался сделать решатель обратного отсчета. Обратный отсчет - это игровое шоу, и правила с методом, которым я следовал в общих чертах: здесь .
Вот как генерируются выражения: Все различные перестановки чисел и произведение функции на Операторы сделано. Затем они располагаются для формирования значимых выражений постфикса. Например: с номерами 4, 4 и 10 это возможные выражения
[['10', '4', '+', '4', '+'], ['10', '4', '4', '+', '+']]
[['10', '4', '+', '4', '-'], ['10', '4', '4', '+', '-']]
[['10', '4', '+', '4', '*'], ['10', '4', '4', '+', '*']]
[['10', '4', '+', '4', '/'], ['10', '4', '4', '+', '/']]
[['10', '4', '-', '4', '+'], ['10', '4', '4', '-', '+']]
[['10', '4', '-', '4', '-'], ['10', '4', '4', '-', '-']]
[['10', '4', '-', '4', '*'], ['10', '4', '4', '-', '*']]
[['10', '4', '-', '4', '/'], ['10', '4', '4', '-', '/']]
[['10', '4', '*', '4', '+'], ['10', '4', '4', '*', '+']]
[['10', '4', '*', '4', '-'], ['10', '4', '4', '*', '-']]
[['10', '4', '*', '4', '*'], ['10', '4', '4', '*', '*']]
[['10', '4', '*', '4', '/'], ['10', '4', '4', '*', '/']]
[['10', '4', '/', '4', '+'], ['10', '4', '4', '/', '+']]
[['10', '4', '/', '4', '-'], ['10', '4', '4', '/', '-']]
[['10', '4', '/', '4', '*'], ['10', '4', '4', '/', '*']]
[['10', '4', '/', '4', '/'], ['10', '4', '4', '/', '/']]
[['4', '10', '+', '4', '+'], ['4', '10', '4', '+', '+']]
[['4', '10', '+', '4', '-'], ['4', '10', '4', '+', '-']]
[['4', '10', '+', '4', '*'], ['4', '10', '4', '+', '*']]
[['4', '10', '+', '4', '/'], ['4', '10', '4', '+', '/']]
[['4', '10', '-', '4', '+'], ['4', '10', '4', '-', '+']]
[['4', '10', '-', '4', '-'], ['4', '10', '4', '-', '-']]
[['4', '10', '-', '4', '*'], ['4', '10', '4', '-', '*']]
[['4', '10', '-', '4', '/'], ['4', '10', '4', '-', '/']]
[['4', '10', '*', '4', '+'], ['4', '10', '4', '*', '+']]
[['4', '10', '*', '4', '-'], ['4', '10', '4', '*', '-']]
[['4', '10', '*', '4', '*'], ['4', '10', '4', '*', '*']]
[['4', '10', '*', '4', '/'], ['4', '10', '4', '*', '/']]
[['4', '10', '/', '4', '+'], ['4', '10', '4', '/', '+']]
[['4', '10', '/', '4', '-'], ['4', '10', '4', '/', '-']]
[['4', '10', '/', '4', '*'], ['4', '10', '4', '/', '*']]
[['4', '10', '/', '4', '/'], ['4', '10', '4', '/', '/']]
[['4', '4', '+', '10', '+'], ['4', '4', '10', '+', '+']]
[['4', '4', '+', '10', '-'], ['4', '4', '10', '+', '-']]
[['4', '4', '+', '10', '*'], ['4', '4', '10', '+', '*']]
[['4', '4', '+', '10', '/'], ['4', '4', '10', '+', '/']]
[['4', '4', '-', '10', '+'], ['4', '4', '10', '-', '+']]
[['4', '4', '-', '10', '-'], ['4', '4', '10', '-', '-']]
[['4', '4', '-', '10', '*'], ['4', '4', '10', '-', '*']]
[['4', '4', '-', '10', '/'], ['4', '4', '10', '-', '/']]
[['4', '4', '*', '10', '+'], ['4', '4', '10', '*', '+']]
[['4', '4', '*', '10', '-'], ['4', '4', '10', '*', '-']]
[['4', '4', '*', '10', '*'], ['4', '4', '10', '*', '*']]
[['4', '4', '*', '10', '/'], ['4', '4', '10', '*', '/']]
[['4', '4', '/', '10', '+'], ['4', '4', '10', '/', '+']]
[['4', '4', '/', '10', '-'], ['4', '4', '10', '/', '-']]
[['4', '4', '/', '10', '*'], ['4', '4', '10', '/', '*']]
[['4', '4', '/', '10', '/'], ['4', '4', '10', '/', '/']]
Помогите мне Повелители стека обмена
print_numb=['4','4','10','5']
target=220
operators=['+', '-','*','/']
Example_Expression=['10','5','4','4','-','/','+'] #Exact form expressions are input
#Check if Solutions follow Rules of Countdown or Divide by Zero
def check_divZero(Sign, Num): #problem area probably
if Sign =='/' and Num == '0':
return False
def check_rules(Sol):
if Sol < 0:
return False
elif isinstance(Sol, float) == True and Sol.is_integer() == False:
return False
#Function to Calculate Postfix and Check Target
def postfix_eval (Some_Expression, Some_Target):
stack=[]
for i in Some_Expression:
if i not in operators:
stack.append(i)
elif i in operators:
num2=stack.pop()
num1=stack.pop()
exp=num1+i+num2
if check_divZero(i, num2) == False:
break
sol=eval(exp)
if check_rules(sol) == False:
break
stack.append(str(sol))
if float(stack[-1]) == Some_Target:
return Some_Expression
postfix_eval(Example_Expression, target) #this does not give an error. IDK what kind of expressions do.