how could i square the result of function?.. so when i call the functioon

```
def sum(first, last):
for i in range(first, last+1):
print i
return i**2
```

it gives the answer as 50, as it should square 3,4 and 5=50

gangster88
0
Junior Poster in Training

how could i square the result of function?.. so when i call the functioon

```
def sum(first, last):
for i in range(first, last+1):
print i
return i**2
```

it gives the answer as 50, as it should square 3,4 and 5=50

Jump to Posthi,

here's a way of doing it:`def square( first, last ): total = 0 for i in range( first, last + 1 ): total += i**2 return total print square( 3, 5 )`

Jump to Postright,

here's what happens here:

total holds the sum of all squared values, so the first time i = 3 so i**2 = 9, and total += i**2 means total = total + 9. The value for total here is 0 so total = 0 + 9 and …

Jump to PostP.S.

probably the '+=' operation is confusing you here.... total += 1 simply means total = total + 1:)

masterofpuppets

hi,

here's a way of doing it:

```
def square( first, last ):
total = 0
for i in range( first, last + 1 ):
total += i**2
return total
print square( 3, 5 )
```

gangster88
0
Junior Poster in Training

hi,

here's a way of doing it:`def square( first, last ): total = 0 for i in range( first, last + 1 ): total += i**2 return total print square( 3, 5 )`

thankyou very much for the help, but could you please explain the last 2 lines.. coz we have not done tht yet and there is want to show work which i cant explain..

masterofpuppets

right,

here's what happens here:

total holds the sum of all squared values, so the first time i = 3 so i**2 = 9, and total += i**2 means total = total + 9. The value for total here is 0 so total = 0 + 9 and now total is 9.

The second time i**2 = 16 so total = total + i**2 is 9 + 16 and therefore total = 25 now.

And the third time i**2 = 25 so total = 25 + 25 and total = 50

All we need to do now is to return it

return total

and that's it.

Hope this helps :)

If not I'll try to explain it better :)

masterofpuppets

P.S.

probably the '+=' operation is confusing you here.... total += 1 simply means total = total + 1

:)

gangster88
0
Junior Poster in Training

P.S.

probably the '+=' operation is confusing you here.... total += 1 simply means total = total + 1:)

so if the + operation was not there then would it have outputted 9? because it would just do 3**2 and not add the rest?

masterofpuppets

so if the + operation was not there then would it have outputted 9? because it would just do 3**2 and not add the rest?

yes but at the end of the loop you would get 25 because the last value of i is 5, i.e. 5**2 = 25 so the value of total becomes 25

gangster88
0
Junior Poster in Training

P.S.

probably the '+=' operation is confusing you here.... total += 1 simply means total = total + 1:)

yes but at the end of the loop you would get 25 because the last value of i is 5, i.e. 5**2 = 25 so the value of total becomes 25

so would that mean it would do 3**2, 4**2 and 5**2 but it would add 9+16+25 and instead it would just output 25 as it at the end of the loop?

masterofpuppets

if you write the function like this:

```
def square( first, last ):
total = 0
for i in range( first, last + 1 ):
total = i**2 # Not total += i**2
return total
print square( 3, 5 )
```

it would output this:

```
>>>
25
>>>
```

because you are not adding the result of every square to total, i.e total becomes whatever the result for the last value of i squared is, since i is 5 at the end, total becomes i**2 which is 25 :)

gangster88
0
Junior Poster in Training

yup thts exactly wht i meant... and + would mean it squares every number and add it to the total and moves on the next without leaving any out.. yup tx for the help... appreciate it... nw i get it..

but one last question, why is the total=0? is tht like a rule that it has to equal 0?

Edited
by gangster88 because:
*
n/a *

masterofpuppets

yup thts exactly wht i meant... and + would mean it squares every number and add it to the total and moves on the next without leaving any out.. yup tx for the help... appreciate it... nw i get it..

but one last question, why is the total=0? is tht like a rule that it has to equal 0?

well when you want to count stuff or find a sum of numbers you need the count, or whatever variable name you use, to be initially 0 because if it's 1 or more or 0 and less you will get incorrect results. Basically this is what I mean:

>>>total = 1

>>>total = total + 5**2

>>>print total

26 # but 5**2 is 25 so total has to be 0

the statement total = total + 5**2 means compute the sum of the current value of total and the square of 5 and replace the current value of total with the result of the computation :)

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, learning, and sharing knowledge.