I've decided not to waste my summer and start learning python. I figured I'd start learning looping techniques so I wanted to start with a basic list of numbers, aka, write a for loop that will generate the numbers 1 - 10.

This is what I have:

def generateNumber(num): i=0 for i in range(num): return i return i 

and the code doesn't work. I want to get an output in a list like this:

>>> generateNumber(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 

5 Answers

Trying to be consistent with what you first tried, you could do something like this

def generateNumber(num): mylist = [] for i in range(num+1): mylist.append(i) return mylist x = generateNumber(10) 

but, you could, instead just say,

x = range(10+1) # gives a generator that will make a list 

or

x = list(range(10+1)) # if you want a real list 

In general though, you should keep this list based on inputting the number 10 so it is [0...9] and not [0...10].

5

It might help to implement this with the ability to specify a range:

def generateNumber(low, high): '''returns a list with integers between low and high inclusive example: generateNumber(2,10) --> [2,3,4,5,6,7,8,9,10] ''' return range(low, high+1) 

This can also be done with the built-in range function:

range(10) --> [0,1,2,3,4,5,6,7,8,9] #note the "off by one" range(11) --> [0,1,2,3,4,5,6,7,8,9,10] range(2,11) --> [2,3,4,5,6,7,8,9,10] 

More about range:

2

By default, range(n) produces list of numbers [0, 1, ..., n-1].

If you want a list of numbers from a to b inclusive, you should call:

range(a, b + 1) 

Which in your case is:

range(1, 11) 

The range function already does what you are setting out to do.

If you're in Python 2, range(10) returns 0 through 9, or in Python 3 it's list(range(10)).

You probably want to create a list in your function, use the yield keyword, or use the built in list function.

def generateNumberList(num): myList = [] for i in range(num): myList.append(i) #Notice that your return the list you've created rather #than each individaul integer return myList print generateNumberList(10) def generateNumberList2(num): for i in range(10): yield i for i in generateNumberList2(10): print i def generateNumberList3(num): return list(range(num)) print generateNumberList3(10) 

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.