Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Use of / operator when defining a function

Hello. I need a clarification on the behaviour of fractions. More precisely, I don't understand the behaviour of the / operator when used inside a def().

I noticed that / finds the integer part of the fraction when used inside a def:

def sumA():
      a=randint(2,10)
      b=randint(2,10)
      c=randint(3,10)
      d=randint(4,10)
      return [a,b,c,d,a/b + c/d]

Then sumA() the following result:

[8, 3, 9, 8, 3]

That is: 8/3 + 9/8 = 3. How can I make a/b + c/d work like a sum of fractions inside this function?

Oddly enough, the behaviour is different when generating random numbers a and b and adding 1/a + 1/b.

def sumB():
     a=randint(2,10)
     b=randint(2,10)
     return [a,b,1/a + 1/b]

This function adds the fractions in the correct way. The result of sumB() is

[5, 9, 14/45]

Finally, I noticed that writing a1/b + c1/d instead of a/b + c/d makes everything work like fractions:

    def sumC():
      a=randint(2,10)
      b=randint(2,10)
      c=randint(3,10)
      d=randint(4,10)
      return [a,b,c,d,a*1/b + c*1/d]

The result of sumC() is

 [6, 7, 5, 6, 71/42]