gpt4 book ai didi

python - 是否有Python3内置用于格式化表示多项式首项系数的字符串?

转载 作者:行者123 更新时间:2023-12-01 00:57:42 24 4
gpt4 key购买 nike

我正在编写一个数学考试包,其中包含一个模块 root.py(和 polynomial.py),它有效地表示一阶多项式或二项式。我想格式化我创建的 class Root: 对象,以便以其最简化(人类可读)的形式进行可视化。例如,如果根的形式为:ax + b;其中 ab 表示根的系数,“+/-”仅在 b != 0 时才存在,并且 如果 > 1, 项应省略“+”号,并省略首项系数中的值 1

我看过这个documentation ,以及这个 stack overflow article

这是一些相关代码:

root.py

class Root:
def __init__(self, a=0, b=0):
# Does stuff with a/b to get coefficients

def __str__(self):
a, b = '', '0'
### Begin code block of concern
if self.a:
b = ''
if self.a == 1:
a = 'x'
elif self.a == -1:
a = '-x'
else:
a = '{:-d}x'.format(self.a)
### End code block of concern
if self.b:
b = '{:+d}'.format(self.b)
return a + b # The string '{-}ax{+/-}b'

示例:

  • -3x+7、3x-7 不是 +3x-7
  • 7-3x,-7+3x 不是 +7-3x
  • -x-1、x+2 -1x-1、+1x+2 或 1x+2

上面提到的代码已经(有点)可以工作,但是很冗长。完全公开,我只是期待一种更“Pythonic”的方式来做到这一点。让字符串格式允许采用 b+ax 形式(而不是仅使用 ax+b)会很好,但没有必要,但这个问题超出了范围。

最佳答案

如果您不想添加其他依赖项,可以尝试以下操作:

lookup = { 1: 'x', -1: '-x'}
a = lookup.get(a, '{:-d}x'.format(a))

关于python - 是否有Python3内置用于格式化表示多项式首项系数的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56112573/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com