你如何创建一个将分数分成最简单形式python的函数

时间:2016-06-07 04:13:33

标签: python python-2.7 parentheses

我正在上课,我感到很困惑。如果你可以引导我完成这个过程并告诉我我做错了什么,那真的会有所帮助。我有一个与括号有关的错误,因为它们中没有任何内容。我是新手,所以我很抱歉。

def FractionDivider(a,b,c,d):
    n = ()
    d = ()
    n2 = ()
    d2 = ()
    print int(float(n)/d), int(float(n2)/d2)
    return float (n)/d / (n2)/d2

3 个答案:

答案 0 :(得分:0)

您的功能正在接受参数abcd,但您并未在任何地方使用它们。而是定义了四个新变量。尝试:

def FractionDivider(n, d, n2, d2):

并删除空的括号位,看看是否符合您的要求。

答案 1 :(得分:0)

你不能声明变量,因为你正在做n =(),然后尝试为它分配一个整数或字符串。

n =()并不意味着:

  

n目前没有任何东西,但我会很快分配一个变量。

()--->元组https://docs.python.org/3/tutorial/datastructures.html

  

它们是序列数据类型的两个例子(参见序列类型 -   列表,元组,范围)。因为Python是一种不断发展的语言,其他   可以添加序列数据类型。还有另一个标准   序列数据类型:元组。

所以在你的函数中,如果你想要为varialbes分配作为参数传递的内容

代表:

def FractionDivider(a,b,c,d):

    n = a
    d = b
    n2 = c
    d2 = d

考虑从上面的链接中阅读更多关于元组的内容

答案 2 :(得分:0)

n=()是一个有效的python语句,没有问题。但是,n=()正在评估n为空的tuple()。我相信你要做的是如下。

def FractionDivider(a,b,c,d):
    '''
        Divides a fraction by another fraction...
        '''

    n = a #setting each individual parameter to a new name.
    d = b #creating a pointer is often useful in order to preserve original data
    n2 = c #but it is however not necessary in this function
    d2 = d
    return (float(n)/d) / (float(n2)/d2) #we return our math, Also order of operations exists here '''1/2/3/4 != (1/2)/(3/4)'''

print FractionDivider(1, 2, 3, 4) #here we print the result of our function call.

#indentation is extremely important in Python

这是一种编写相同功能的简单方法

def FractionDivider_2(n,d,n2,d2):
    return (float(n)/d) / (float(n2)/d2)

print FractionDivider_2(1,2,3,4)