lwordl escribió:Bueno, he dejado explicado lo basico, si alguien me pudiera pasar una explicacion clara de como se compone la programacion orientada a objetos pues mejor, no se como explicarlo :s
lwordl escribió:Bueno, he dejado explicado lo basico, si alguien me pudiera pasar una explicacion clara de como se compone la programacion orientada a objetos pues mejor, no se como explicarlo :s
lworld escribió: ...
Korso10 escribió:Buen hilo. Ahora con vistas a septiembre tendré que repasar hilos y sockets en python, así que lo mismo puedo aportar algo.lworld escribió: ...
El tutorial que tienes enlazado de Antonia Arauzo, en realidad es de Antonio Arauzo (Es profesor mío )
In [10]: a = 10
In [11]: input('>>')
>>a
Out[11]: 10
In [12]: raw_input('>>')
>>a
Out[12]: 'a'
In [13]: if isinstance('', object):
....: print("Es un objeto!")
....:
....:
Es un objeto!
Fox escribió:Heya, buen hilo sin duda.
Me parece bien esos pequeños resúmenes majetes que pones en el hilo principal, pero veo que estás pidiendo uno de Orientación a Objetos y no creo que sea algo que puedas poner en un solo hilo, quiero decir, es tema para decenas de páginas al menos para un resumen
Yo hace mil programaba Python y tal, es un buen lenguaje y permite hacer muchas cositas la verdad.
De hecho escribia cosillas, nah, 3-4 articulillos (me pilló cuando lo dejaba )
http://pyfox.zzl.org/ No es spam, total, ese blog lo rescaté de una muerte segura porque a un amigo le hacia falta leer algo.
Ahora me dedico más al lado oscuro de Microsoft.
Aun asi, si veo alguna dudilla y me acuerdo, os ayudaré.
#Extractor de emails. Alpha 1.0
#...
#Primero recojemos datos
#
#Gracias por la ayuda Linkgl ^^
#
print """
Bienvenido, esta aplicacion sirve para poder filtrar los
emails que quieras. Saludos!!!
"""
log = raw_input("Directorio del log(Misma Carpeta Ej: emails.txt) --->")
filtrar = raw_input("Email a filtrar ej: @hotmail.com --->")
guardar = raw_input("Nombre del archivo final Ej: Filtrado.txt --->")
r = open(log,"r")
w = open(guardar, "a")
linea=r.readline()
while linea!="":
if linea.find(filtrar)!=-1:
w.write(linea)
linea=r.readline()
r.close()
w.close()
print "Finalizado, el archivo es " , guardar
#
#el if es
#if linea.find(filtrar)!=-1:
#porquee la funcion .find si no encuentra el parametro devuelve -1
#entonces hacemos que si devuelve -1 no lo escriba
#como vez es facil es cosa de saber que retorna cada funcion
import socket
import threading
import sys
import time
# Este hilo nos permite poder mostrar los mensajes del resto de usuarios
def hilo_escucha(socket_s):
print "activada escucha"
while(True):
datos = socket_s.recv(1000)
if datos == "exit":
socket_s.close()
exit(0)
else:
print datos
# Comprobamos que hayamos especificado un nombre
if len(sys.argv) < 2:
print "hay que indicar user"
exit()
# Nos conectamos al servidor
socket_s = socket.socket()
if(len(sys.argv) == 3):
socket_s.connect(("localhost",int(sys.argv[2])))
else:
socket_s.connect(("localhost",9998))
# Comprobamos que el usuario no este repetido
socket_s.send(sys.argv[1])
conectado = socket_s.recv(1000)
if(conectado == "no"):
print "usuario repetido"
exit()
# Abrimos un hilo para recibir mensajes del resto
t = threading.Thread(target=hilo_escucha,args=(socket_s,))
t.start()
# Enviamos mensajes al servidor
while(True):
datos = raw_input()
socket_s.send(datos)
# Si enviamos exit, esperamos al hilo que habiamos abierto y cerramos
if(datos == "exit"):
print("desconectando...")
t.join()
print("saliendo...")
break
socket_s.close()
import socket
import threading
import sys
# Lista de clientes
clientes = list()
# Con este hilo se gestiona un cliente del chat
def hilo_chat(socket_c,host_c):
user = socket_c.recv(1000)
print "<server> conectado cliente",user,"@",host_c
# Comprobamos que el cliente no se repita y lo anadimos a la lista
for cli in clientes:
if(cli[1] == user):
print "<server> cliente repetido"
socket_c.send("no")
socket_c.close()
exit(0)
clientes.append([socket_c,user,host_c])
socket_c.send("si")
# Informamos al resto
for cli in clientes:
recibido = "<server> conectado "+user
cli[0].send(str(recibido))
while(True):
recibido = socket_c.recv(1000)
print "<server> recibido",recibido,"de:",user
# Si recibimos exit desconectamos al cliente
if(recibido == "exit"):
print "<server> desconectado cliente",user,"@",host_c
# Eliminamos al cliente de la lista
for cli in clientes:
if(cli[1] == user):
cli[0].send(str("exit"))
clientes.remove(cli)
# Informamos al resto
for cli in clientes:
recibido = "<server> "+user+" se desconecto..."
cli[0].send(str(recibido))
socket_c.close()
break
# Si recibimos list mostramos la lista de clientes
elif recibido == "list":
recibido = "<server> Usuarios:\n"
for cli in clientes:
recibido += "\t+ "+cli[1]+"\n"
socket_c.send(str(recibido))
# En cualquier otro caso, mandamos el mensaje al resto
else:
recibido = user+"> "+recibido
for cli in clientes:
if cli[1] != user:
cli[0].send(str(recibido))
# Parametros de conexion
socket_s = socket.socket()
if(len(sys.argv) > 1):
socket_s.bind(("localhost",int(sys.argv[1])))
else:
socket_s.bind(("localhost",9999))
socket_s.listen(1)
while(True):
# Gestionamos cada cliente con un nuevo hilo
socket_c, (host_c, puerto_c) = socket_s.accept()
t = threading.Thread(target=hilo_chat, args=(socket_c,host_c))
t.start()
python server.py 1234
python client.py pepe 1234
#!/usr/bin/python
#
# Peteris Krumins (peter@catonmat.net)
# http://www.catonmat.net -- good coders code, great reuse
#
# http://www.catonmat.net/blog/python-library-for-google-translate/
#
# Code is licensed under MIT license.
#
from browser import Browser, BrowserError
from urllib import quote_plus
import json
class TranslationError(Exception):
pass
class Translator(object):
translate_url = "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=%(message)s&langpair=%(from)s%%7C%(to)s"
def __init__(self):
self.browser = Browser()
def translate(self, message, lang_to='en', lang_from=''):
"""
Given a 'message' translate it from 'lang_from' to 'lang_to'.
If 'lang_from' is empty, auto-detects the language.
Returns the translated message.
"""
if lang_to not in _languages:
raise TranslationError, "Language %s is not supported as lang_to." % lang_to
if lang_from not in _languages and lang_from != '':
raise TranslationError, "Language %s is not supported as lang_from." % lang_from
message = quote_plus(message)
real_url = Translator.translate_url % { 'message': message,
'from': lang_from,
'to': lang_to }
try:
translation = self.browser.get_page(real_url)
data = json.loads(translation)
if data['responseStatus'] != 200:
raise TranslationError, "Failed translating: %s" % data['responseDetails']
return data['responseData']['translatedText']
except BrowserError, e:
raise TranslationError, "Failed translating (getting %s failed): %s" % (e.url, e.error)
except ValueError, e:
raise TranslationError, "Failed translating (json failed): %s" % e.message
except KeyError, e:
raise TranslationError, "Failed translating, response didn't contain the translation"
return None
class DetectionError(Exception):
pass
class Language(object):
def __init__(self, lang, confidence, is_reliable):
self.lang_code = lang
self.lang = _languages[lang]
self.confidence = confidence
self.is_reliable = is_reliable
def __repr__(self):
return '<Language: %s (%s)>' % (self.lang_code, self.lang)
class LanguageDetector(object):
detect_url = "http://ajax.googleapis.com/ajax/services/language/detect?v=1.0&q=%(message)s"
def __init__(self):
self.browser = Browser()
def detect(self, message):
"""
Given a 'message' detects its language.
Returns Language object.
"""
message = quote_plus(message)
real_url = LanguageDetector.detect_url % { 'message': message }
try:
detection = self.browser.get_page(real_url)
data = json.loads(detection)
if data['responseStatus'] != 200:
raise DetectError, "Failed detecting language: %s" % data['responseDetails']
rd = data['responseData']
return Language(rd['language'], rd['confidence'], rd['isReliable'])
except BrowserError, e:
raise DetectError, "Failed detecting language (getting %s failed): %s" % (e.url, e.error)
except ValueError, e:
raise DetectErrro, "Failed detecting language (json failed): %s" % e.message
except KeyError, e:
raise DetectError, "Failed detecting language, response didn't contain the necessary data"
return None
_languages = {
'af': 'Afrikaans',
'sq': 'Albanian',
'am': 'Amharic',
'ar': 'Arabic',
'hy': 'Armenian',
'az': 'Azerbaijani',
'eu': 'Basque',
'be': 'Belarusian',
'bn': 'Bengali',
'bh': 'Bihari',
'bg': 'Bulgarian',
'my': 'Burmese',
'ca': 'Catalan',
'chr': 'Cherokee',
'zh': 'Chinese',
'zh-CN': 'Chinese_simplified',
'zh-TW': 'Chinese_traditional',
'hr': 'Croatian',
'cs': 'Czech',
'da': 'Danish',
'dv': 'Dhivehi',
'nl': 'Dutch',
'en': 'English',
'eo': 'Esperanto',
'et': 'Estonian',
'tl': 'Filipino',
'fi': 'Finnish',
'fr': 'French',
'gl': 'Galician',
'ka': 'Georgian',
'de': 'German',
'el': 'Greek',
'gn': 'Guarani',
'gu': 'Gujarati',
'iw': 'Hebrew',
'hi': 'Hindi',
'hu': 'Hungarian',
'is': 'Icelandic',
'id': 'Indonesian',
'iu': 'Inuktitut',
'ga': 'Irish',
'it': 'Italian',
'ja': 'Japanese',
'kn': 'Kannada',
'kk': 'Kazakh',
'km': 'Khmer',
'ko': 'Korean',
'ku': 'Kurdish',
'ky': 'Kyrgyz',
'lo': 'Laothian',
'lv': 'Latvian',
'lt': 'Lithuanian',
'mk': 'Macedonian',
'ms': 'Malay',
'ml': 'Malayalam',
'mt': 'Maltese',
'mr': 'Marathi',
'mn': 'Mongolian',
'ne': 'Nepali',
'no': 'Norwegian',
'or': 'Oriya',
'ps': 'Pashto',
'fa': 'Persian',
'pl': 'Polish',
'pt-PT': 'Portuguese',
'pa': 'Punjabi',
'ro': 'Romanian',
'ru': 'Russian',
'sa': 'Sanskrit',
'sr': 'Serbian',
'sd': 'Sindhi',
'si': 'Sinhalese',
'sk': 'Slovak',
'sl': 'Slovenian',
'es': 'Spanish',
'sw': 'Swahili',
'sv': 'Swedish',
'tg': 'Tajik',
'ta': 'Tamil',
'tl': 'Tagalog',
'te': 'Telugu',
'th': 'Thai',
'bo': 'Tibetan',
'tr': 'Turkish',
'uk': 'Ukrainian',
'ur': 'Urdu',
'uz': 'Uzbek',
'ug': 'Uighur',
'vi': 'Vietnamese',
'cy': 'Welsh',
'yi': 'Yiddish'
};
#Ejemplo de traducir un texto
from translate import Translator
traducir = Translator().translate
print """
Traductor, indique el texto que desea traducir
al ingles, se detecta el idioma automaticamente
"""
texto = raw_input("->")
print "-> " , texto
print """
-----------------
Traducido:
-----------------
"""
print traducir(texto, lang_to="en")
raw_input()
TRITONMSX escribió:Hola a todos ,soy novato en python y es mi primer lenguaje de programación.
Ahora estoy empezando por las cosas mas facilitas y logicas,pero he llegado a un ejemplo de programa que no sé como hacer para que haga la operacion que le digo.
Os explico:
pido que el programa me pregunte un numero por ejemplo:
numero =raw_input
despues yo creo una variable con un valor:
variable = 12
entonces creo la formula:
resultado =numero*variable
Y aquí está el problema,que en vez de multiplicarme el número que yo entroduzco por 12 lo que hace el programa es repetime el numero 12 veces.
si fuera el 7 seria:
777777777777
Podriais decirme como seria el planteamiento correcto?
Gracias.
numero=raw_input()
type(numero)
try:
entero=int(raw_input("Entero: "))
print "Has introducido el entero %d" % entero
except:
print "NO has introducido un entero"
TRITONMSX escribió:Hola a todos ,soy novato en python y es mi primer lenguaje de programación.
Ahora estoy empezando por las cosas mas facilitas y logicas,pero he llegado a un ejemplo de programa que no sé como hacer para que haga la operacion que le digo.
Os explico:
pido que el programa me pregunte un numero por ejemplo:
numero =raw_input
despues yo creo una variable con un valor:
variable = 12
entonces creo la formula:
resultado =numero*variable
Y aquí está el problema,que en vez de multiplicarme el número que yo entroduzco por 12 lo que hace el programa es repetime el numero 12 veces.
si fuera el 7 seria:
777777777777
Podriais decirme como seria el planteamiento correcto?
Gracias.
variable=12
numero=raw_input("->")
num = int(numero)
solucion = variable*num
TRITONMSX escribió:Hola a todos ,ya solucioné el problema anterior ,solo tuve que decir que el resultado era un numero entero (int ),pero ahora tengo un problema parecido.
Estoy haciendo un calendario en el cual escribes un mes del año y tienen que salirte cosas relacionadas con ese mes como por ejemplo si escribes agosto te ponga que te vas de vacaciones...
Pues mirad:
print " seleccione un mes : "
mes = raw_input()
if mes == " enero " :
print " hace frio "
al ejecutar el programa me pregunta por el mes y al escrivir enero me dá error .
Como deveria escrivirlo de forma correcta para hacer lo que quiero ?.
Un saludo y gracias.
mendorro escribió:buenas, tengo curiosidad por aprender algo de python. por lo que voy viendo por ahí, hay dos versiones "funcionando", la 2.7 y la 3.1. cual me aconsajais que tome como referencia para ir empezando? por lógica debería ser la 3, no? pero bueno, por lo que leí la 2.7 aún está bastante más extendida, no?
gracias, salu2
TRITONMSX escribió:Totalmente de acuerdo contigo,perdona mis faltas de ortografïa y por no ponerte el mensaje de error .
Lo que me ponia en el otro codigo era que " mes " no estaba definido .
He cambiado un poco el codigo y no me dá error pero no lo entiendo ,mirad :
print " elige un mes :"
mes = raw_input()
if mes == " enero " :
print " hola "
else :
print " hello "
Lo normal seria que el mensaje que apareciera en pantalla fuera " hola " ,no?.
En cambio lo que aparece es " hello ".
Que hago mal?
print "elige un mes:"
mes = raw_input("->")
if mes == "enero":
print " hola "
else :
print " hello "
mendorro escribió:buenas, vuelvo otra vez por aquí a preguntar. sigo con python en la cabeza pero ahora si que me voy a poner con él porque me acaba de surgir un proyecto y ya aprovecho.
es una aplicación bastante sencilla, conectarme a una página web periódicamente, descargar datos y luego hacerles cuatro cuentas y representarlos gráficamente.
en principio es un proyecto personal que haré para linux, pero ya aprovechando la ocasión también querría que fuera portable a windows o por lo menos que me sirva para aplicaciones windows, y mi duda está en que interfaz gráfica usar. buscando por ahí lo que más encuentro son gtk y qt, cuál me recomendais? también me valen otras opciones si las veis mejores.
y como ide ahora mismo tengo eclipse con el plugin de python, tiro por ahí o me recomendais otra?
gracias, un saludo.
Korso10 escribió:mendorro escribió:buenas, vuelvo otra vez por aquí a preguntar. sigo con python en la cabeza pero ahora si que me voy a poner con él porque me acaba de surgir un proyecto y ya aprovecho.
es una aplicación bastante sencilla, conectarme a una página web periódicamente, descargar datos y luego hacerles cuatro cuentas y representarlos gráficamente.
en principio es un proyecto personal que haré para linux, pero ya aprovechando la ocasión también querría que fuera portable a windows o por lo menos que me sirva para aplicaciones windows, y mi duda está en que interfaz gráfica usar. buscando por ahí lo que más encuentro son gtk y qt, cuál me recomendais? también me valen otras opciones si las veis mejores.
y como ide ahora mismo tengo eclipse con el plugin de python, tiro por ahí o me recomendais otra?
gracias, un saludo.
En cuanto a IDE yo no he usado mucho PyDev, pero he oído buenas cosas de él.
Y en cuanto a librerías de interfaz, tienes las Tk incluidas en Python (vienen a ser como swing en Java), aunque yo prefiero PyQt, que las he usado y me parecen bastante cómodas y potentes.
Ya que el hilo vuelve a tener vida, este año como trabajo para mi asignatura de Redes he hecho un reproductor de música web en Python (web.py), HTML5 y Javascript. Dejo por aquí un pantallazo y espero poder compartir el código después de exámenes. A ver si este verano lo pulo un poco (aunque funciona bastante bien).
fons = Fons(0,0)
fons2 = Fons(0,-ALT)
prota = Protagonista(ANCHO/2,ALTO-30)
enemigo1 = Enemigo1(100,100)
marcador = Marcador(10,10)
#Creamos los grupos de Sprites
enemigos = pygame.sprite.OrderedUpdates(enemigo1)
jugador = pygame.sprite.OrderedUpdates(prota)
#Ponemos el reloj
reloj = pygame.time.Clock()
#Bucle principal del programa
jugando = True
while jugando:
#FPS (frames por segundo)
reloj.tick(60)
#Registro de eventos
for event in pygame.event.get():
if event.type == QUIT or ((event.type == KEYDOWN)and(event.key == K_ESCAPE)):
jugando = False
#Control de colisiones
if pygame.sprite.spritecollideany(prota, enemigos):
print "Colisionan!"
#Guardamos las teclas pulsadas a la variable:
teclasPulsadas = pygame.key.get_pressed()
#Invocamos las iteraciones de los Sprites para habilitar el movimiento
jugador.update()
enemics.update()
fons.update()
fons2.update()
#Dibujamos los sprites en pantalla
pantalla.blit(fondo.image,(fondo.x,fondo.y))
pantalla.blit(fondo2.image,(fondo2.x,fondo2.y))
enemigos.draw(pantalla)
jugador.draw(pantalla)
#pantalla.blit(prota.image,(prota.x,prota.y))
#pantalla.blit(enemigo1.image,(enemigo1.x,enemigo1.y))
pantalla.blit(marcador.textoVida,(marcador.x,marcador.y))
pantalla.blit(marcador.textoPuntos,(marcador.x+180,marcador.y))
#Actualizamos la pantalla
pygame.display.update()