Saltar al contenido

La evolución del Ingeniero de Software

Primer día de programación:

print ("Hola Mundo")

Al primer año:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Programa que imprime en pantalla el mensaje Hola Mundo"""
 
class HelloWorld(object):
    greetings = "Hola Mundo"
 
	def __init__(self):
		pass
 
	def print(self):
		print (self.greetings)
 
obj = HelloWorld()
obj.print()

Al segundo año:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
 
"""Programa que obtiene el saludo de una variable de entorno del SO"""
 
__author__ = 'Gonzalo Chacaltana Buleje'
import os
 
class HelloWorld(object):
	"""Clase HelloWorld
        Attributes:
        greeting (str): Atributo que almacena el mensaje Hola Mundo.
        """
	greeting = ""
 
	def __init__(self):
		"""Método constructor de la Clase HelloWorld
        Note:
            greeting (str): Almacena la valor de la variable de entorno HELLO_WORLD
        """
		self.greeting = os.environ['HELLO_WORLD']
 
	def print(self):
		"""Método que imprime el mensaje en pantalla
        Returns:
            (str) : Mensaje Hola Mundo
        """
		print (self.greeting)
 
if __name__ == '__main__':
	# $> helloWorld.py
	# Instanciamos la clase HelloWorld
	obj = HelloWorld()
	#Imprimimos el saludo
	obj.print()

Al tercer año:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
 
"""Programa que permite al usuario ingresar el saludo e imprimirlo en pantalla"""
__author__ = "Gonzalo Chacaltana Buleje"
__version__ = "1.0.1"
 
import sys
 
class HelloWorld(object):
	"""Clase HelloWorld
        Attributes:
        greeting (None): Atributo que almacena el mensaje Hola Mundo.
        """
	greeting = None
 
	def __init__(self, greeting):
		"""Método constructor de la Clase HelloWorld
        Args:
            greeting (str): Argumento enviado al instanciar la clase.
        """
		self.greeting = greeting
 
	def print(self):
		"""Método que imprime el mensaje Hola Mundo en pantalla
        Returns:
            (str) : Mensaje Hola Mundo
        """
		print ("\n" + self.greeting)
 
if __name__ == '__main__':
	# $ > helloWorld.py "Hola Gonzalo"
	try:
		# Enviamos como parametro el primer valor enviado por consola
		# Instanciamos la clase HelloWorld
		obj = HelloWorld(sys.argv[1])
		#Imprimimos el mensaje enviado por el usuario.
		obj.print()	
	except:
		print ("Debe enviar el mensaje al ejecutar programa.")

Al quinto año:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
 
"""Programa que permite al usuario ingresar el saludo e imprimirlo en pantalla"""
__author__ = 'Gonzalo Chacaltana'
__email__ = "[email protected]"
__copyright__ = "Copyright 2017, HelloWorld"
__credits__ = ["Pepito", "Jaimito"]
__license__ = "GPL"
__version__ = "1.0.1"
__maintainer__ = "Gonzalo Chacaltana"
__status__ = "Production"
 
import sys
 
class HelloWorld(object):
	"""Clase HelloWorld
        Attributes:
        greeting (None): Atributo que almacena el mensaje Hola Mundo.
       """
	greeting = None
	initial_greeting = "hola"
 
	def __init__(self, greeting):
		"""Método constructor de la Clase HelloWorld
                Args:
                   greeting (str): Argumento enviado al instanciar la clase.
                 """
		self.greeting = self.set_greeting(greeting.strip())
 
	def set_greeting(self, greeting):
		"""Método que asigna el saludo ingresado por la consola al 
		 atributo self.greeting
                 Args:
                    greeting (str): Saludo ingresado por consola
                """
		if (self.validate_greeting_two_words(greeting)):
			if (self.validate_greeting_first_word(greeting)):
				return greeting
 
	def validate_greeting_two_words(self, greeting):
		"""Método que valida que el saludo este compuesto por 2 palabras.
                Args:
                  greeting (str): Saludo ingresado por consola
                """
		words = greeting.split(" ")
		if (len(words) != 2):
			raise ErrorNotGreeting("El texto ingresado no contiene 2 palabras.")
		return True
 
	def validate_greeting_first_word(self, greeting):
		"""Método que valida que el saludo inicie con la palabra Hola
                Args:
                  greeting (str): Saludo ingresado por consola
                """
		words = greeting.split(" ")
		if words[0].lower() == self.initial_greeting:
				self.greeting = greeting
		else:
			raise ErrorNotGreeting("La primera palabra del saludo no es Hola")
 
		return True
 
	def print(self):
		"""Método que imprime el mensaje Hola Mundo en pantalla
                Returns:
                     (str) : Mensaje Hola Mundo
                """
		print ("\n" + str(self.greeting))
		sys.stdout.flush()
 
class ErrorNotGreeting(Exception):
	"""Clase ErrorNotGreeting
 
	Clase creada para capturar los errores que devuelva la validación
	del saludo ingresado.
        Attributes:
            message (str): Atributo que almacena el mensaje de la Exception
        """
	message = ""
	def __init__(self, message):
		"""Método constructor de la Clase ErrorNotGreeting
        Args:
            message (str): Argumento enviado al instanciar la clase.
        """
		self.message = message
 
if __name__ == '__main__':
	# :Example:
	# $> helloWorld.py "Hola Gonzalo"
	try:
		# Enviamos como parametro el primer valor enviado por consola
		# Instanciamos la clase HelloWorld
		obj = HelloWorld(sys.argv[1])
		#Imprimimos el mensaje enviado por el usuario.
		obj.print()
	except ErrorNotGreeting as ex:
		print (ex.message)
	except IndexError:
		print ("Ingrese el saludo al ejecutar el programa.")

Al décimo año:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Programa que imprime en pantalla el mensaje Hola Mundo"""
__author__ = 'Gonzalo Chacaltana'
__email__ = "[email protected]"
 
class HelloWorld(object):
	def __init__(self):
		print ("Hola Mundo")
 
obj = HelloWorld()

Basada sobre la publicación de Sean Hickey.

Publicado enCarrera Profesional