Definición de funciones en python

Después de un buen tiempo escribiendo sobre GRASS-QGIS, animado por los amigos de GeoTux, decido incursionar nuevamente en python; pero de manera “light” (aunque con la intención de orientar los programas hacia el geoproceso). Para ello, bajo De 0 a Python y sólo en la página 11 (casi a punto de terminar el mini tutorial de apenas 18 páginas) encuentro algo que vale la pena probar: cómo definir funciones.

En el pasado había intentado comenzar en python y recuerdo haber escrito código muy sencillo para Windows y Linux basado en analogía con C/C++ (es decir, buscando en Google las equivalencias python). Esto resultó algo frustrante para mi porque perdí muchas horas tratando de hacer correr programas muy sencillos (algo que en otros lenguajes me tomaba mucho menos tiempo) lidiando con la característica principal de python que es la identación (decidiendo para ese entonces que no valía la pena porque en C/C++ hacía la tarea). En esta nueva incursión decido descartar a Windows y hacerlo directamente en Linux Debian; donde configuro la tecla de tabulación de gedit a 4 espacios para automatizar y facilitar la identación.

Para probar la definición de funciones selecciono el código del método de Ruffini, para dividir polinomios por binomios, de este link:

Código python (Linux)

y decido crear una función de impresión; tal como se encuentra a continuación:

#! /usr/bin/python

import os   #Libreria de funciones del sistema

os.system('clear') #Para limpiar pantalla de consola

def imprimir(cod): # Funcion para impresion

	if cod == 1:
		print "\nIntroduzca los coeficientes del polinomio\n"

	elif cod == 2:
		print "\nLos coeficientes del polinomio son\n"

	elif cod == 3:
		print "F("+str(i)+") =",f[i]

	elif cod == 4:
		print "\nLa posible raiz a probar sera:\n"

	elif cod == 5:
		print "F("+str(i-1)+") =",f[i]

	elif cod == 6:
		print "\nX = " + str(x) + " no es raiz del polinonio"

	elif cod == 7:
		print "\nX = " + str(x) + " es raiz del polinomio"

# Inicio del programa

n = int(raw_input("Introduzca grado del polinomio = ? "))

i = n

f = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] #Definiendo el array
#el grado del polinomio no puede ser mayor que 9

imprimir(1)

while (i > -1):

    f[i] = int(raw_input("F("+str(i)+") = "))
    i = i - 1

i = n 

imprimir(2)

while (i > -1):

	imprimir(3)
	i = i - 1

imprimir(4)

x = int (raw_input("X = ? "))

i = n - 1

#************* Algoritmo para el metodo de Ruffini**********

while (i > -1):

    f[i] = f[i] + f[i + 1] * x
    i = i - 1

#***********************************************************

i = n

print "\nLos coeficientes del polinomio de orden " + str(n-1)+ " resultante son\n"

while (i > 0):

	imprimir(5)     
	i = i - 1

print "\nEl resto es = ", f[0]

if(f[0] != 0):

	imprimir(6)

else:

	imprimir(7)

El código de grabó como ruffini.py y se ejecutó en cónsola, en el directorio correspondiente, con python ruffini.py. Lo probé con X3 + X2 + X + 1 que tiene una raíz en -1 y funcionó como se esperaba.

Introduzca grado del polinomio = ? 3

Introduzca los coeficientes del polinomio

F(3) = 1
F(2) = 1
F(1) = 1
F(0) = 1

Los coeficientes del polinomio son

F(3) = 1
F(2) = 1
F(1) = 1
F(0) = 1

La posible raiz a probar sera:

X = ? -1

Los coeficientes del polinomio de orden 2 resultante son

F(2) = 1
F(1) = 0
F(0) = 1

El resto es =  0

X = -1 es raiz del polinomio
Esta entrada fue publicada en Código Python, Linux. Guarda el enlace permanente.

Una respuesta a Definición de funciones en python

  1. Pingback: Latino » Blog Archive » Definición de funciones en python

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s