如何在Ruby

时间:2017-03-30 17:50:06

标签: ruby

我有一个问题。

1.0X + 1.0Y + -7.0 = 0

如何更好地打印方程式?

例如,而不是+ - 7.0我想要打印-7.0;或者在系数为零的情况下。

由于

2 个答案:

答案 0 :(得分:3)

打印完全控制格式化的等式

1.0X + 1.0Y - 7.0 = 0

输出:

{{1}}

文档:Ruby's % string operator / sprintf

答案 1 :(得分:1)

通过一些替换,您可以实现更清洁的等式:

equation = "1.0X + 1.0Y - -0.0Z + -7.0 = 0"

new_equation = equation.gsub('+ -', '- ')
                       .gsub('- -', '+ ')
                       .gsub(/^\s*\+/, '')             # Remove leading +
                       .gsub(/(?<=\d)\.0+(?=\D)/, '')  # Remove trailing zeroes
                       .gsub(/\b1(?=[a-z])/i, '')      # Remove 1 in 1X
                       .gsub(/[+-]? ?0[a-z] ?/i, '')   # Remove 0Z

p new_equation

# "X + Y - 7 = 0"

顺便说一下,尽管我喜欢Ruby,但我必须说Sympy是一个很棒的项目。仅这个库就值得学习基本的Python语法。