Skip to content

Instantly share code, notes, and snippets.

@levlaz
Created April 12, 2019 19:36
Show Gist options
  • Save levlaz/4d221a04b7adc8a01e73d220a82d7c05 to your computer and use it in GitHub Desktop.
Save levlaz/4d221a04b7adc8a01e73d220a82d7c05 to your computer and use it in GitHub Desktop.
Python Three Ways
"""
Python three ways
Print the numbers 1 - 10 in procedural, functional, and
object oriented styles.
"""
# Procedural
print(1)
print(2)
print(3)
print(4)
print(5)
print(6)
print(7)
print(8)
print(9)
print(10)
# Better procedural
for i in range(1,11):
print(i)
# Even Better Procedural
def print_numbers(min_number, max_number):
for i in range(min_number, max_number):
print(i)
print_numbers(1, 11)
# Functional
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print("### FUNCTIONAL ###")
print(list(map(lambda x: print(x), numbers)))
# Object Oriented
print("### OBJECT ORIENTED ###")
class NumberPrinter():
def __init__(self, min_number, max_number):
self.min_number = min_number
self.max_number = max_number
self.numbers = []
def print_numbers(self):
for i in range(self.min_number, self.max_number):
print(i)
def create_number_array(self):
for i in range(self.min_number, self.max_number):
self.numbers.append(i)
def print_functional_numbers(self):
print("### Functional inside of an Object??? ###")
self.create_number_array()
print(list(map(lambda x: print(x), self.numbers)))
printer = NumberPrinter(1, 11)
printer.print_numbers()
printer.print_functional_numbers()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment