Уравнение решения Sympy с введенными значениями присваивается символам [дубликат]

Это потому, что, когда вы вводите номер, нажмите «Ввод», input.nextInt() потребляет только номер, а не «конец строки». Когда input.nextLine() выполняется, он потребляет «конец строки» все еще в буфере с первого входа.

Вместо этого используйте input.nextLine() сразу после input.nextInt()

11
задан Wesley 4 October 2015 в 05:15
поделиться

3 ответа

Чтобы заменить несколько значений:

>>> from sympy import Symbol
>>> x, y = Symbol('x y')
>>> f = x + y
>>> f.subs({x:10, y: 20})
>>> f
30
19
ответ дан Wesley 5 September 2018 в 10:08
поделиться

Команда x = Symbol('x') сохраняет символ Symbol('x') Sympy в переменной Python x. Выражение Sympy f, которое вы создаете впоследствии, содержит Symbol('x'), а не переменную Python x.

Когда вы переназначаете x = 0, переменная Python x установлена ​​на ноль и больше не относится к Symbol('x'). Это не влияет на выражение Sympy, которое все еще содержит Symbol('x').

Это лучше всего объяснить на этой странице документации Sympy: http://docs.sympy.org/latest/ gotchas.html # variables

Что вы хотите сделать, это f.subs(x,0), как сказано в других ответах.

1
ответ дан Adrien 5 September 2018 в 10:08
поделиться

На самом деле sympy предназначен для того, чтобы не подставлять значения, пока вы действительно не захотите их заменить subs (см. http://docs.sympy.org/latest/tutorial/basic_operations.html )

Попробуйте

f.subs({x:0})
f.subs(x, 0) # as alternative

вместо

x = 0
1
ответ дан MSeifert 5 September 2018 в 10:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: