jueves, 12 de agosto de 2010

Python: Mi primera aplicación. (calculo de vallado)

Hace poco tiempo me adentre un poquito en el mundo de Python y me quede a mitad camino, pero con cuatro nociones desarrolle esta aplicación que simplemente calcula el material y precio para vallar una finca, aunque pueda faltar o sobrar algo te aseguro que a precio actual de los materiales no se va mucho.
lo cierto es que es mas difícil poner la valla que desarrollar esto, pero igual te puede servir si tienes en mente vallar algo para que no entren animales bipedos a tu finca.
El codigo fuente lo puedes bajar de Wingedbox (vallape.py), para ejecutarlo desde terminal.

$ python /ruta/vallape.py

o te pones en el directorio donde lo descargaste y:

$ python vallape.py

Esto es una captura de pantalla, no esperes florituras ni entorno gráfico es solo un pequeño ejercicio de principiante. un ejemplo de que si quieres aprender a programar, busca utilidad a los conocimientos mas básicos para aprovecharlos en la vida cotidiana, eso hará que te animes a aprender mas y a no desilusionarte y sobre todo piensa.
A continuación dejo el codigo en formato texto para el que quiera echarle un vistazo o no quiera bajarselo.
si usas güindous cambia clear por clr en:
import os, sys
os.system("clear")

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Calculo de materiales y precio total para vallar un terreno
# Precios corresponden al año 2010
# La valla empleada es de 1.50m en rollos de 25m. 
# moneda Euro. // alambre no esta incluido en la palicación.
#
# Este programa ha sido realizado con conocimientos muy basicos de Python
# puede haber algun pequeño error en los calculos de postes tranversales,
# ya que sobre el terreno puede haber alguno mas o sobrar alguno.
# Desarrollado por Enrique http://ubuntu-paranovatos.blogspot.com/, se admiten
# dudas y sugerencias, eres libre de modificar, copiar, difundir o hacer lo que
# quieras con este codigo. Espero te sea util 7-junio-2010
#
# ************************
# DECLARACION DE VARIABLES (precios por elemento)
# ************************
#
import os, sys
os.system("clear")
rollo=62.0
abesq=0.71
abdoble=0.71
absimple=0.58
tapon=0.25
tapontorna=0.72
alambre=0.10
tensor=0.47
grapa=0.17
tubo=6.0
platina=4
iva=18
#
# *****************
# PETICION DE DATOS
# *****************
#
ml=float(raw_input('Introduce metros lineales de vallado: '))
esq=int(raw_input('Cuantas esquinas? '))
final=int(raw_input('Cuantos finales hay? '))
grapadora=(raw_input('Va a comprar una grapadora (S ó N)'))
# ******************
# CALCULO materiales
# ******************

trollos=int(ml/25)
if ml%25>0:
    trollos=trollos+1
ttubo=(int(ml/3)-1)+esq+final
if trollos>1:
    tabdoble=trollos*3
else:
    tabdoble=0
tabsimple=(final*3)
ttapon=ttubo
ttapontorna=int((tabdoble/3)*2)+(esq*2)+final
tgrapa=ttubo*3
tplatina=final+(esq*2)+trollos
trav=ttapontorna
tabesq=esq*3
ttensores=tabesq+tabsimple+tabdoble
# ***************
# CALCULO precios
# ***************
ptrollos=trollos*rollo
pttubo=ttubo*tubo
ptabdoble=tabdoble*abdoble
ptabsimple=tabsimple*absimple
pttapon=ttapon*tapon
pttapontorna=ttapontorna*tapontorna
pttensores=ttensores*tensor
ptgrapa=tgrapa*grapa
ptabesq=tabesq*abesq
ptrav=trav*tubo
# *****************************
# Imprimir calculos en pantalla
# *****************************

print 'Articulo\t\tCantidad\tPrecioUd\tTotal'
print 'Rollos\t\t\t',trollos,'\t\t',rollo,'\t\t',ptrollos
print 'Postes\t\t\t',ttubo,'\t\t',tubo,'\t\t',pttubo
print 'Abraz. DB\t\t',tabdoble,'\t\t',abdoble,'\t\t',ptabdoble
print 'Abraz. simple.\t\t',tabsimple,'\t\t',absimple,'\t\t',ptabsimple
print 'Abraz. esquadra\t\t',tabesq,'\t\t',esq,'\t\t',ptabesq
print 'Tapones\t\t\t',ttapon,'\t\t',tapon,'\t\t',pttapon
print 'Ta. tornapunta\t\t',ttapontorna,'\t\t',tapontorna,'\t\t',pttapontorna
print 'Tensor\t\t\t',ttensores,'\t\t',tensor,'\t\t',pttensores
print 'poste transv\t\t',trav,'\t\t',tubo,'\t\t',ptrav
if grapadora=='s' or grapadora=='S':
    grapadora=72
    print 'grapadora\t\t\t\t\t\t',grapadora
else:
    grapadora=0
# CALCULO COSTO TOTAL VALLADO

total=ptrollos+pttubo+ptabdoble+ptabsimple+ptabesq+pttapon+pttapontorna+pttensores+ptrav
+grapadora
print '\t\t\tCOSTE TOTAL\t\t\t',total
print '\t\t\tIva....................\t\t\t',iva,'%'
print '\t\tTOTAL IVA INCLUIDO...................\t\t\t',(total*0.18)+total
print '--Pulsa enter para salir--'
raw_input()


Espero que a alguien le sirva para algo igual que me esta sirviendo a mi. En ese caso comenta que es gratis.

4 comentarios:

  1. Muy bueno el programa. Yo también empecé hace poco con este lenguaje. La verdad es que comparado con C/C++, que es el único que manejo, es muchísimo más fácil.
    Te dejo un enlace de megaupload con el tutorial que estoy siguiendo para aprender lo básico.
    http://www.megaupload.com/?d=DC6LKW5H
    Un saludo!

    ResponderEliminar
  2. Hola, buen blog y buen programa jeje pero tengo un par de sugerencias (por si te interesan xD):

    1. Ya es hora de cambiar el IVA xD (18%)
    2. Esto es una chorrada pero bueno: En esta función ((total*0.18)+total), ¿no sería más fácil así ((total*1.18))? Pues eso que es una chorrada xD.

    Un saludo ;-)

    ResponderEliminar
  3. Sr. Izan tienes toda la razón, el iva ya esta cambiado en el código del blog. Y lo de la función no lo cambio pero también tienes razón. Muchas gracias por tu comentario y por repasar el código. Saludos.

    ResponderEliminar
  4. Hola!

    Buena aplicación, acabo de verla por el comentario en mi blog.

    Me alegra que esté sirviendo WingedBox a mucha gente. La idea era esta, que se pudiese compartir de forma fácil.

    Cualquier sugerencia que tengas nos tienes en info{at}wingedbox.com o a mí personalmente en kikorb-gmail

    Un saludo

    ResponderEliminar