@cyberkilla

Можно ли визуально сократить кусок кода?

Не суть важно - зачем, но требуется визуально сократить кусок кода, конкретно вот эту часть:

5ede5a96b4aa6127172345.png

Перепробовала все, что знала и могла, но ничего не вышло. Может, у кого-нибудь найдется пара идей. Заранее спасибо!

from __future__ import division
import mpmath
import sympy
from sympy import *

arr1 = (open("f.txt")).read()
mark = 0
kits = set()
kits.add(arr1)


for i in range(1,9) :
    for i in range(len(kits)) :
        arr1 = list(kits)[i]
        for j in range(1,9) :
            array = arr1
            array = array.replace(str(j), "0")
            kits.add(array)

for i in range(len(kits)) :
    array = list(kits)[i]
    x=symbols('x1:9', positive=True)
    x1,x2,x3,x4,x5,x6,x7,x8=x
    mark=0
   
    for j in range(1,9):
      if array[j-1] == "0" :
        if j == 1:
          x1 = 0
        if j == 2  :
          x2 = 0
        if j == 3:
          x3 = 0
        if j == 4:
          x4 = 0
        if j == 5:
          x5 = 0
        if j == 6 :
          x6 = 0
        if j == 7:
          x7 = 0
        if j == 8 :
          x8 = 0
        mark+=1
        
    if mark >= 3 :
      eq=(3*x1 - 11*x2 + 11*x3 + 4*x4 - 5*x5 + 6*x6 - 2*x7 + 8*x8 - 112, -2*x1 + 0*x2 - 50/11*x3 + 11*x4 + 12*x5 - 6*x6 -1*x7 + 3*x8 - 113,-2*x1 + 4*x2 + 6*x3 + 7*x4 + 12*x5 -11*x6 -1*x7 + 13*x8 - 109,-1*x1 + 3*x2 - 11/4*x3 - 4*x4 + 5*x5 - 1*x6 + 12*x7 - 1*x8 - 132,2*x1 + 5*x2 + 7*x3 -11*x4 +6*x5 +1*x6 + 1*x7 - 2*x8 - 211)
      solver = sympy.solve(eq, x1,x2,x3,x4,x5,x6,x7,x8)
      if str(type(solver)) != "<class 'list'>" :
        print('\n Точка с координатами: '+ (str(solver)[1:-1]), end =', если ')
        xs=(x1,x2,x3,x4,x5,x6,x7,x8)
        for i in range(8):
          if xs[i]==0:
            print('x'+str(i+1)+'=0', end = ', ')
        print('\n ______________________________________________________')
  • Вопрос задан
  • 108 просмотров
Пригласить эксперта
Ответы на вопрос 1
Sobolev5
@Sobolev5
Python developer
Добрый день. Почитайте про eval
https://pythonz.net/references/named/eval/
Это как раз ваш случай.

В целом если у вас возникает подобная ситуация, вы точно что то делаете не так.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы