2017-10-04 89 views
0

有沒有一種方法可以修改這個,所以我的答案只會以「y」座標出現?我正在尋找的輸出是例如'三角形編號:55385'。我對編碼相當陌生,所以我不太明白如何去做。 (Python 2.7版)當答案是(x,y)時,是否有辦法只打印'y'?

from sympy.solvers import solve 
from sympy import Symbol 
t = Symbol('t') 
e = Symbol('e') 
x = Symbol('x') 

print "Triangle Number:", solve(t * (t + 1)/2 - a, t) 
print "Pentagonal Number:", solve((e * (3 * (e) - 1)/2) - a, e) 
print "Hexagonal Number:", solve((x * (2 * (x) - 1)) - a, x) 

#OUTPUT:

Triangle Number: [-55386, 55385] 
    Pentagonal Number: [-95930/3, 31977] 
    Hexagonal Number: [-55385/2, 27693] 
+1

你返回從'solve'一個'list'所以指數的第二個元素你'解決(.. ...)[1]' – EdChum

回答

2

是的,你可以要求在列表的最後一個條目返回而不是整個序列要打印,:

print "Triangle Number:", solve(t * (t + 1)/2 - a, t)[-1] 
print "Pentagonal Number:", solve((e * (3 * (e) - 1)/2) - a, e)[-1] 
print "Hexagonal Number:", solve((x * (2 * (x) - 1)) - a, x)[-1] 

#OUTPUT IS BELOW 
Triangle Number: 55385 
Pentagonal Number: 31977 
Hexagonal Number: 27693 
+0

非常感謝! –

+1

如果解決了問題,您可以[接受和讚揚](https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)答案。 – bhansa

+0

謝謝bhansa - 是的,如果答案對你有幫助,接受它作爲答案總是一個好主意; upvote也不錯! ;) –

2

你可以做的只是解決返回符合你的e,x和t標準的值就是將它們定義爲非負值。這樣做,解決應該只與您可能正在尋找的值返回一個列表:

>>> e, x, t = symbols('e x t', nonnegative=True, integer=True) 
>>> a = 1533776805 
>>> solve(t * (t + 1)/2 - a, t) 
[55385] 
相關問題