Calculator 有理数计算器

Calculator 有理数计算器,calculator,rational-numbers,Calculator,Rational Numbers,我想做一个有理数计算器,但我不知道如何忽略一些字符。例如,如果程序必须计算表达式“2/9+9/3”,并且答案应为非简化形式,那么在获取输入时如何忽略上述表达式中的“/”?我认为您需要定义一个了解有理数的语法/解析器。对于示例输入,您希望最终得到一个包含以下内容的解析树: add(rational(2, 9) rational(9, 3)) 然后,您将编写了解使用有理数计算时使用的各种技巧的代码,以便实现add操作的代码可以检查其输入参数的类型,并将数字转换为可添加的 在这种

我想做一个有理数计算器,但我不知道如何忽略一些字符。例如,如果程序必须计算表达式“2/9+9/3”,并且答案应为非简化形式,那么在获取输入时如何忽略上述表达式中的“/”?

我认为您需要定义一个了解有理数的语法/解析器。对于示例输入,您希望最终得到一个包含以下内容的解析树:

   add(rational(2, 9)
       rational(9, 3))
然后,您将编写了解使用有理数计算时使用的各种技巧的代码,以便实现
add
操作的代码可以检查其输入参数的类型,并将数字转换为可添加的

在这种情况下,它可能会将参数重写为
rational(2,9)
rational(27,9)
,然后进行加法,从而得到
rational(29,9)


你可以有一个单独的函数来简化,它可以简化到
3+rational(2,9)

我认为你需要定义一个语法/解析器来了解rational数字。对于示例输入,您希望最终得到一个包含以下内容的解析树:

   add(rational(2, 9)
       rational(9, 3))
然后,您将编写了解使用有理数计算时使用的各种技巧的代码,以便实现
add
操作的代码可以检查其输入参数的类型,并将数字转换为可添加的

在这种情况下,它可能会将参数重写为
rational(2,9)
rational(27,9)
,然后进行加法,从而得到
rational(29,9)


你可以有一个单独的函数来简化,它可以简化到
3+rational(2,9)

我看不出这里有什么问题。。。如果您使用的是分数,则除法运算符/将成为分数指示符,即任何除法实际上都转换为分数。请查看Python 2.6中包含的分数模块,我看不出这里的问题。。。如果您使用的是分数,则除法运算符/将成为分数指示符,即任何除法实际上都转换为分数