Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - TheCrimulo

#1
Buenas, hace tiempo que no paso por aqui y tenía una pregunta:
Me gustaría saber si hay alguna manera de hacer una aplicación y de poder registrarse y logearse actualizandose en tiempo real (se que tiene que haber, una database). Por ejemplo: Te registras,  
te añade a la base de datos y cuando otro user te busque, te pueda encontrar.

Un saludo,
TheCrimulo
#2
Scripting / [PYTHON] Tutorial de clases en Python
9 Diciembre 2014, 18:09 PM
Tener todo en un archivo es complicado, y más si es un proyecto largo, pero para algo estan las CLASES.

Para hacer una clase necesitamos un nivel de conocimiento medio/bajo, saber que hace def y un poco de lo demás.

Empezaremos creando una clase que cada vez que sea como un humano.

Código (python) [Seleccionar]
class Persona: #Siempre es necesario poner (self,opcional) en los parametros de la funcion.
    def __init__(self,edad): #Esto se ejecutara cada vez que lo instanciemos.
        self.edad = 19 #La edad base sera 19.
    def hablar(self,texto):
        print texto #Cuando se llame a la funcion, dira lo que pongamos.


Con esto haremos nuestra clase, pero ahora hay que instanciarla de esta manera:

Código (python) [Seleccionar]
Paco = Persona(36) #Ponemos los años, en este caso, 36.

Y podremos hacer cosas con ella, por ahora solo hablar, pero ya le añadiremos más.

Hablar:
Código (python) [Seleccionar]
Paco.hablar('Hola, me llamo Paco y tengo ', Paco.edad, 'años'

Ahora, haremos dos clases nuevas que harán lo mísmo que humano, pero con más funciones, a esto se le llama HERENCIA

Código (python) [Seleccionar]
class Programador(Persona): #Con (Persona) heredamos de ella, y si persona heredara de otra clase, Programador lo tendría, se llama Herencia Multiple
    def programar(self,lenguaje):
        print 'Voy a programar en ', lenguaje
class Cocinero(Persona):
    def cocinar(self,comida):
        print 'Voy a cocinar ', comida
class Estudioso(Cocinero,Programador): #Esto hereda de Cocinero y Programador a la vez, es una herencia multiple, pues estos dos heredan de Persona
    def Estudiar(self,tema):
        print 'Voy a estudiar ', tema


Ahora Cocinero y Programador heredan de Persona y Estudioso puede hacer lo que los dos hacen.

Instanciando:
Código (python) [Seleccionar]
Paco = Programador(36) #Como sigue heredando de Persona, hay que poner la edad
Pedrito = Cocinero(31)
Ricardo = Estudioso(26) #Ricardo hereda de Cocinero y de Programador, estos dos de Persona, como habreis adivinado, ¡La edad!


Ahora Pedrito puede hacer Pedrito.hablar('LALAL') y Pedrito.cocinar('Ensalada')
Paco, Paco.hablar('LELEL') y Paco.programar('C++')
Pero Ricardo puede hacer:
Ricardo.hablar('LULUL')
Ricardo.programar('Java')
Ricardo.cocinar('Pavo con verduritas')

Espero que les haya sido útil,
Un saludo,
TheCrimulo
#3
Muy buenas,

Acabo de ver un post en el que se podían ejecutar codigos de batch/bash en Python de la siguiente manera:

Código (python) [Seleccionar]
import os
os.system('cls') #Borra la pantalla


Así que pensé:
Si cuando instalas Python, se puede ejecutar un archivo con python archivo.py, ¿Se podría realizar en python de la siguiente manera?:

Código (python) [Seleccionar]
import os
file = 'holamundo.py'
os.system('python ' + file)


Gracias por atender,
TheCrimulo
#4
Muy buenas,
En este código (Interprete de comandos) tengo un problema, y es que cuando, por ejemplo, he usado la función de la calculadora, vuelva al 'prompt':
Código (python) [Seleccionar]
# -*- coding: utf-8 -*-
from _pyclass import pymaths #Math Class
from _pyclass import pyuses #Pauses
from _pyclass import pymethods #Methods
import os
import time

pymaths = pymaths()
pyuse = pyuses()
pyfiles = pyfiles()
pymet = pymethods()

pymet.pyusr('TheCrimulo','Python Software Foundation - PSF')

print 'Welcome to AnvilPy'
print '[0.1.2.4]'
print time.strftime("%Y/%m/%d %H:%M:%S")

print '///////////////////////'
print '/                     /'
print '/   AnvilPy Logger    /'
print '/                     /'
print '/                     /'
print '///////////////////////'

usr = raw_input('Username:')
mode = raw_input('Terminal mode ("$command" or "command"):')
print 'Welcome, ' + usr

q1 = '?'
q1_ = '$'
q2 = 'hlp'
q2_ = '$hlp'
q3 = 'help'
q3_ = '$help'
q4 = 'python'
q4_ = '$python'
q5 = 'calculator'
q5_ = '$calculator'
q6 = 'time'
q6_ = '$time'
q7 = '¡doc'
m1 = 'command'
m1_ = '$command'

if mode == m1:
cprompt = raw_input('*terminal*>>>')

if cprompt == q1:
print """
Commands:
===========
? , hlp , help - Shows all the commands
python - Shows the Python Info
calculator - Starts the calculator
time - Shows the time
"""
elif cprompt == q2:
print """
Commands:
===========
? , hlp , help - Shows all the commands
python - Shows the Python Info
calculator - Starts the calculator
time - Shows the time
"""
elif cprompt == q3:
print """
Commands:
===========
? , hlp , help - Shows all the commands
python - Shows the Python Info
calculator - Starts the calculator
time - Shows the time
"""
elif cprompt == q4:
print 'Python 2.7.7 - PSF'
print 'www.python.org'

elif cprompt == q5:
eprompt = raw_input('*calculator*>>>')
a1 = 'Add'
a2 = 'Substract'
a3 = 'Multiply'
a4 = 'Int Division'
a5 = 'Dec Division'
a6 = 'Quo Division'
a7 = 'Res Division'
a8 = 'Round Number'
if eprompt == a1:
ep1 = raw_input('Number:')
ep2 = raw_input('Number:')
print pymaths.add(ep1,ep2)

elif eprompt == a2:
ep3 = raw_input('Number:')
ep4 = raw_input('Number:')
print pymaths.substract(ep3,ep4)

elif eprompt == a3:
ep5 = raw_input('Number:')
ep6 = raw_input('Number:')
print pymaths.multiply(ep5,ep6)

elif eprompt == a4:
ep7 = raw_input('Number:')
ep8 = raw_input('Number:')
print pymaths.divide_int(ep7,ep8)

elif eprompt == a5:
ep9 = raw_input('Number:')
ep10 = raw_input('Number:')
print pymaths.divide_dec(ep9,ep10)

elif eprompt == a6:
ep11 = raw_input('Number:')
ep12 = raw_input('Number:')
print pymaths.divide_quo(ep11,ep12)

elif eprompt == a7:
ep13 = raw_input('Number:')
ep14 = raw_input('Number:')
print pymaths.divide_res(ep13,ep14)

elif eprompt == a8:
ep15 = raw_input('Number:')
ep16 = raw_input('Number of Decimals:')
print pymaths.roundto(ep15,ep16)

Falta MUCHO para terminar, pero es un punto crucial en el programa, lo he intentado con exec, pero NOPE.

Un saludo,
TheCrimulo
#5
¿A que estas cansado de hacer esto para pausar el programa?:
Código (python) [Seleccionar]
pause = raw_input('Pulse ENTER para continual')

¡Pues hazlo una vez y no lo hagas más de esta manera!:
Código (python) [Seleccionar]
def pause(self):
pause = raw_input('Press ENTER to continue')


Ahora, cada vez que pongas pause(), aparecerá que pulses ENTER para continuar.

Muy simple, pero a la vez muy util para los que usan mucho Python.

TAMBIÉN:
Evidentemente, puedes guardarlo en una clase de esta manera:
Código (python) [Seleccionar]
class pauses:
def pause(self):
pause = raw_input('Press ENTER to continue')

Guarda esto en un _clases.py, crea un archivo vacío que sea __init__.py para poder importar, entonces, en tu archivo pon:
Código (python) [Seleccionar]
from _clases import pauses
variable2 = pauses()
variable2.pause()

Así tendrás acceso en todo momento a las pausas.  :D
#6
Hola a todos, he hecho este código para operaciones básicas en Python, internas (no se muestran) o externas (se muestran con 'print' u otros):
Código (python) [Seleccionar]
class pymaths:
def add(self,num1,num2): #Sumar
return float(num1) + num2
def substract(self,num1,num2): #Restar
return float(num1) - num2
def multiply(self,num1,num2): #Multiplicar
return float(num1) * num2
def divide_int(self,num1,num2): #Division con enteros
return num1 / num2
def divide_dec(self,num1,num2): #Division con decimales
return float(num1) / num2
def divide_coc(self,num1,num2): #Cociente de una division
return float(num1) // num2
def divide_rst(self,num1,num1): #Resto de una division
return num1 % num2
def roundto(self,num1,num2): #Redondear el primer numero (num1) a la cantidad de decimales de (num2)
return round(num1,num2)


Importalo en tu archivo con el siguiente código en tu archivo, teniendo en cuenta que _pymaths.py y un __init__.py (vacío) estén en el mismo directorio:

Código (python) [Seleccionar]
from _pymaths import pymaths

Después debemos declarar/instanciar la clase con:
Código (python) [Seleccionar]
variable = pymaths()

Y ya estará listo, aquí unos ejemplos de uso:

Sumar:
Código (python) [Seleccionar]
print variable.add(1,1)
Dividir(Resto):
Código (python) [Seleccionar]
print variable.divide_rst(5,4)

O también poder guardar el resultado en una variable:
Código (python) [Seleccionar]
var = variable.add(1,1)

Como supongo que habréis podido comprobar, entre los paréntesis están los números, representados con num1 y num2.

Espero que les sirva,
Un saludo,
TheCrimulo