list from defined function - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: list from defined function (/thread-23548.html) |
list from defined function - Coastal - Jan-05-2020 Hey I'm trying to learn how to define a function. As an example I made a "only want even number from a range" function def even_numbers_only(a, b): even_numbers_list = [] for i in range(a, b): if (i % 2) == 0: even_numbers_list.append(i) return even_numbers_list even = [even_numbers_only(1000, 3001)] print(even) But I don't understand how i can output a list from a defined function RE: list from defined function - j.crater - Jan-05-2020 Please put your code in Python code tags, as you have been warned about that before. You can find help here. RE: list from defined function - Killertjuh - Jan-06-2020 (Jan-05-2020, 10:02 AM)Coastal Wrote: Hey I'm trying to learn how to define a function. even = [even_numbers_only(1000, 3001)]you have to remove the [ ] even = even_numbers_only(1000, 3001)You can directly print the output without added to a var print(even_numbers_only(1000, 3001)) RE: list from defined function - perfringo - Jan-06-2020 Some suggestions: - use meaningful parameter names - take andvantage that True and False are integer subclass with respective values of 1, 0. Some ideas: def get_evens(start, stop): evens = [] for i in range(start, stop+1): # we need +1 if we want to include stop if not i % 2: evens.append(i) return evensHowever, if one already writes functions then list comprehension should be covered topic. So this function can be written: def get_evens(start, stop): return [i for i in range(start, stop+1) if not i % 2]But if function works on continuous range of numbers one can just verify first number and then use range with step: def get_evens(start, stop): if start % 2: return list(range(start+1, stop+1, 2)) else: return list(range(start, stop+1, 2)One can observe that only difference between returns above is value of dividing by 2 and therefore we can write this function like: def evens(start, stop): return list(range(start+start % 2, stop+1, 2))If function result is used to iterate over then there is no need to convert into list and range can be returned. |