+ 2
define a function to sum up the numbers in a range
Help!! I want to define a function where it can sum up the numbers in a given range. What’s wrong with this code? Def sum(x,y): for i in range(x,y): x += i Return x Thank you!
9 Antworten
+ 8
There are a couple things wrong:
First, as Python is case sensitive, the def and return keywords would both return errors (changing them to all lowercase should fix that)
Second, you seem to be using the lower value in the range when adding up all the values which may mess with the loop and skew the results. I would recommend creating another variable (declaring it before the for loop and giving it a value of 0) and using that instead to be added to i each iteration.
Lastly, you have your return statement within the loop which will exit the function upon the first iteration of the loop, which I'm not sure you want. Instead, move the return statement outside of the loop to be executed once it finishes.
+ 7
An other recommandation from my side:
Do not use names from functions, methods and so on used from python as names for your own functions or variables. This can cause heavy problems because its not easy to find out the reason why python shows an error. sum() is a function from python.
+ 5
Here is another very simple way of calculating sum of a given range from 5 upto and including 20:
print(sum(range(5, 21)))
# output is 200
+ 5
Choe, you probably want to fool me? ;-))
You don‘t use sum() function, but instead you use “hidden” + operator.
BTW this a tremendous time consuming variation.
+ 2
from Faisal observations,
def sum(x,y):
res = 0
for i in range(x,y):
res += i
return res
+ 2
Lothar but can you do it without using sum() ??hehe 😄
print(eval("\x2b".join([str(i) for i in range(5, 21)])))
+ 1
Faisal Got it! It works now! Thank you very much!!!!
+ 1
--here is a sample you can do by using lists:
def total(x,y):
a_list = []
for i in range(x,y+1):
a_list.append(i)
return sum(a_list)
print(total(2,7))
>>>output: 27
--the code will include the last number in the range
--also note that the "sum" is a list method which calculates the sum of numbers in a list that's the reason Lothar mentioned in why not to use a method name in a funcion you created.
0
Lothar thank you!!!