Как мне использовать оператор if в Sympy, чтобы я мог каждый раз неоднократно переходить к итерации next() в своем итераPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как мне использовать оператор if в Sympy, чтобы я мог каждый раз неоднократно переходить к итерации next() в своем итера

Сообщение Anonymous »

Я кодирую в Python, и у меня проблема с суммированием симпи. Я хочу использовать свое суммирование симпи, чтобы я мог позвонить следующему () каждый раз, когда значение x (что является моим символом). Функция движется только один раз и остается прежней для всего суммирования. вызовите Next (), каждый раз, когда значение x поднимается. возможный. Мой код ниже: < /p>

Код: Выделить всё

from sympy import summation, Eq, symbols

x = symbols('x')

class DynamicIterator:
def __init__(self, func, a, b):
self.func = func  # Function to generate values
self.counter = 0  # Keeps track of the current index
self.a = a
self.b = b
self.can_advance = True  # Default to allowing automatic advancement
self.advanced = False  # Flag to control when to advance

def __iter__(self):
return self

def __next__(self):
if not self.can_advance:
raise StopIteration  # Stop iteration if cannot advance

value = self.func(self.counter, self.a, self.b)  # Generate the value
self.counter += 1  # Increment the counter
return value

def control_advance(self, can_advance):
"""Control whether the iterator can advance or not."""
self.can_advance = can_advance

# Define the function that returns the value of `l`

def generate_combinations(n, a, c):
range_size = c - a + 1
p = a + (n // range_size)
l = a + (n % range_size)
return l  # Only return `l`

# Parameters for `a` and `b`

# Create an instance of the iterator
expressions = DynamicIterator(generate_combinations, 1, 256 - 1)

# Define a lambda to get the next value of `l`
next_expr = lambda: next(expressions)
#print(next_expr())
# expressions.control_advance(True)
#print(next_expr())

if x != 0:
num = int(next_expr())
else:
num = 1

formula = num + x

total = summation(formula, (x, 1, 3))
print(total)
Как вы можете видеть в этом коде, я просто добавляю num к x. Значение num должно измениться с 1 на 2 и на 3, поскольку метод должен каждый раз вызывать next(). Я хочу, чтобы это происходило каждый раз, когда x в суммировании меняет значение и увеличивается на 1.
Я специально хочу, чтобы мой код был таким, ребята, и мне не нужны циклы for или любой другой тип. петель. Я хочу, чтобы все было в закрытой форме, чтобы я мог использовать это и в других проектах. Может кто-нибудь показать мне, что делать?
if x != 0:
num = int(next_expr())
else:
num = 1
< /code>
прямо здесь я хочу. Я хочу, чтобы он сказал, что числовое значение - это следующее значение каждый раз x Символ поднимается.

Подробнее здесь: https://stackoverflow.com/questions/793 ... o-the-next
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»