elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


  Mostrar Mensajes
Páginas: 1 2 [3] 4
21  Programación / Scripting / Re: Error en Python en: 31 Agosto 2011, 20:04 pm
Joder voy a tener que mirar mas el codigo antes de postear... Gracias de nuevo!
22  Programación / Scripting / Error en Python en: 31 Agosto 2011, 17:11 pm
Saludos de nuevo, despues de un tiempo aprendiendo en Python, me he decidido a crear un pequeño chat, sin embargo obtengo un error al ejecutar el servidor.

Éste es el código:
Código
  1. #! /usr/bin/python
  2. #coding=utf-8
  3. import socket, sys
  4. from threading import Thread
  5.  
  6. clientlist = []
  7.  
  8. class Client(Thread):
  9. def __init__(self, clients):
  10. Thread.__init__(self)
  11. self.s = clients
  12. self.nick = ""
  13.  
  14. def conectar(self):
  15. self.s.send("Nick: ")
  16. nick = self.s.recv(1024)
  17. self.nick = nick.strip()
  18. clientlist.append(self.s)
  19.  
  20. def mensaje(self, buff):
  21. for index, clients in enumerate(clientlist):
  22. if self.s != clients:
  23. print (self.s == clients)
  24. msg = clients.send("%s dice: %s"%(self.nick,buff)
  25.  
  26.        def run(self):
  27. self.conectar()
  28. while True:
  29. buff = self.s.recv(2048)
  30. self.mensaje(buff)
  31.  
  32. servers = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  33. servers.bind(('',9000))
  34. servers.listen(5)
  35.  
  36. while True:
  37. (clients, addr) = servers.accept()
  38. ct = Client(clients)
  39. ct.start()
  40.  

Y este el error:

Código
  1. File "server.py", line 26
  2.    def run(self):
  3.      ^
  4. SyntaxError: invalid syntax
  5.  

Por más que miro no encuentro el fallo. Alguien me echa un cable? Gracias.

P.D.: como diablos se ponen spoilers aqui? xD
23  Programación / Scripting / Re: Dudas en Python en: 24 Agosto 2011, 00:49 am
¡Al fin! Muchisimas gracias Novlucker. La proxima vez tendre que tener más cuidado jeje.
24  Programación / Scripting / Re: Dudas en Python en: 23 Agosto 2011, 23:48 pm
No hay manera:

Código
  1. #! /usr/bin/python
  2. # Funcion
  3. def calculator(p1, p2, p3):
  4. if p1 == 1:
  5. print "El resultado es " + str(int(p2) + int(p3)) + "."
  6. elif p1 == 2:
  7. print "El resultado es " + str(int(p2) - int(p3)) + "."
  8. elif p1 == 3:
  9. print "El resultado es " + str(int(p2) * int(p3)) + "."
  10. elif p1 == 4:
  11. print "El cociente es " + str(int(p2) / int(p3)) + " y el resto " + str(int(p2) % int(p3)) + "."
  12. # Menu
  13. print "1) Suma \n2) Resta \n3) Producto \n4) Division \n5) Ayuda"
  14. # Variables
  15. while True:
  16. opcion = int(raw_input("Introduzca su opcion: "))
  17. if opcion == 5:
  18. print "Para utilizar la calculadora, debe escribir el numero de la opcion elegida en el campo 'Introduzca su opcion'. A continuacion, introduzca los dos operandos en sus respectivos campos."
  19. break
  20. if opcion >= 1 or opcion <= 4:
  21. op1 = raw_input("Primer operando: ")
  22. op2 = raw_input("Segundo operando: ")
  23. calculator(opcion, op1, op2)
  24. else:
  25. print "La opcion introducida no es valida"
  26.  
Código
  1. #! /usr/bin/python
  2. # Funcion
  3. def calculator(p1, p2, p3):
  4. if p1 == "1":
  5. print "El resultado es " + str(int(p2) + int(p3)) + "."
  6. elif p1 == "2":
  7. print "El resultado es " + str(int(p2) - int(p3)) + "."
  8. elif p1 == "3":
  9. print "El resultado es " + str(int(p2) * int(p3)) + "."
  10. elif p1 == "4":
  11. print "El cociente es " + str(int(p2) / int(p3)) + " y el resto " + str(int(p2) % int(p3)) + "."
  12. # Variables
  13. opcion = 0
  14. while opcion < 1 or opcion > 5:
  15. print "1) Suma \n2) Resta \n3) Producto \n4) Division \n5) Ayuda"
  16.        opcion = int(raw_input("Introduzca su opcion: "))
  17.        if opcion == 5:
  18. print "Para utilizar la calculadora, debe escribir el numero de la opcion elegida en el campo 'Introduzca su opcion'. A continuacion, introduzca los dos operandos en sus respectivos campos."
  19. elif opcion >= 1 or opcion <= 4:
  20. op1 = raw_input("Primer operando: ")
  21. op2 = raw_input("Segundo operando: ")
  22. calculator(opcion, op1, op2) ## Llamamos a la funcion
  23. else:
  24. print "La opcion introducida no es valida"

En ambos códigos al poner 5 me muestra la ayuda y después me pide los operandos. Si pongo el if de la ayuda después del de la funcion directamente no me enseña la ayuda, y en ningun caso si pongo un numero que no vaya del 1 al 5 me muestra el print del else. Siento tantas molestias, es la primera vez que programo. Muchisimas gracias por responder tan rapido.
25  Programación / Scripting / Re: Dudas en Python en: 23 Agosto 2011, 23:16 pm
He probado metiendo las 4 últimas líneas (eliminando el comentario) dentro del segundo if, de la siguiente forma:
Código
  1. #! /usr/bin/python
  2. # Funcion
  3. def calculator(p1, p2, p3):
  4. if p1 == "1":
  5. print "El resultado es " + str(int(p2) + int(p3)) + "."
  6. elif p1 == "2":
  7. print "El resultado es " + str(int(p2) - int(p3)) + "."
  8. elif p1 == "3":
  9. print "El resultado es " + str(int(p2) * int(p3)) + "."
  10. elif p1 == "4":
  11. print "El cociente es " + str(int(p2) / int(p3)) + " y el resto " + str(int(p2) % int(p3)) + "."
  12. # Menu
  13. print "1) Suma \n2) Resta \n3) Producto \n4) Division \n5) Ayuda"
  14. # Variables
  15. while True:
  16. opcion = raw_input("Introduzca su opcion: ")
  17. if opcion == "5":
  18. print "Para utilizar la calculadora, debe escribir el numero de la opcion elegida en el campo 'Introduzca su opcion'. A continuacion, introduzca los dos operandos en sus respectivos campos."
  19. if opcion == "1" or "2" or "3" or "4":
  20. op1 = raw_input("Primer operando: ")
  21. op2 = raw_input("Segundo operando: ")
  22. calculator(opcion, op1, op2)
  23. else:
  24. print "La opcion introducida no es valida"
  25.  

Pero al pulsar 5 me devuelve la ayuda, sí, pero también me pide los operandos luegos. Si pulso un número que no esté en la lista, me sigue pidiendo los operandos. También lo he probado siguiendo este vídeo, pero tampoco funciona. El código queda de la siguiente manera:
Código
  1. #! /usr/bin/python
  2. # Funcion
  3. def calculator(p1, p2, p3):
  4. if p1 == "1":
  5. print "El resultado es " + str(int(p2) + int(p3)) + "."
  6. elif p1 == "2":
  7. print "El resultado es " + str(int(p2) - int(p3)) + "."
  8. elif p1 == "3":
  9. print "El resultado es " + str(int(p2) * int(p3)) + "."
  10. elif p1 == "4":
  11. print "El cociente es " + str(int(p2) / int(p3)) + " y el resto " + str(int(p2) % int(p3)) + "."
  12. # Variables
  13. opcion = 0
  14. while opcion < 1 or opcion > 5:
  15. print "1) Suma \n2) Resta \n3) Producto \n4) Division \n5) Ayuda"
  16.  
  17. opcion = raw_input("Introduzca su opcion: ")
  18.  
  19. if opcion >= "1" or opcion <= "4":
  20. op1 = raw_input("Primer operando: ")
  21. op2 = raw_input("Segundo operando: ")
  22. calculator(opcion, op1, op2) ## Llamamos a la funcion
  23. elif opcion == "5":
  24. print "Para utilizar la calculadora, debe escribir el numero de la opcion elegida en el campo 'Introduzca su opcion'. A continuacion, introduzca los dos operandos en sus respectivos campos."
  25. else:
  26. print "La opcion introducida no es valida"
  27.  
  28.  
Gracias de nuevo.
26  Programación / Scripting / Dudas en Python en: 23 Agosto 2011, 21:22 pm
Saludos, he decidido empezar a aprender Python como mi primer lenguaje de programación, y tras leerme unos capítulos de la guía de Raul González Duque (muy buena por cierto) he decidido lanzarme e intentar hacer algo "útil": una calculadora.

Bien, aquí está:
Código
  1. #! /usr/bin/python
  2. # Funcion
  3. def calculator(p1, p2, p3):
  4. if p1 == "1":
  5. print "El resultado es " + str(int(p2) + int(p3)) + "."
  6. elif p1 == "2":
  7. print "El resultado es " + str(int(p2) - int(p3)) + "."
  8. elif p1 == "3":
  9. print "El resultado es " + str(int(p2) * int(p3)) + "."
  10. elif p1 == "4":
  11. print "El cociente es " + str(int(p2) / int(p3)) + " y el resto " + str(int(p2) % int(p3)) + "."
  12. # Menu
  13. print "1) Suma \n2) Resta \n3) Producto \n4) Division \n5) Ayuda"
  14. # Variables
  15. opcion = raw_input("Introduzca su opcion: ")
  16. if opcion == "5":
  17. print "Para utilizar la calculadora, debe escribir el numero de la opcion elegida en el campo 'Introduzca su opcion'. A continuacion, introduzca los dos operandos en sus respectivos campos."
  18. op1 = raw_input("Primer operando: ")
  19. op2 = raw_input("Segundo operando: ")
  20. # Ejecucion
  21. calculator(opcion, op1, op2)

Ahora bien, tengo los siguientes problemas:
1) Si introduces la opción 5 te muestra correctamente la ayuda, pero salta a introducir los operandos, por lo que al final la función no hará ninguna operación.
2) Me gustaría que si introduces una opción que no esté en la lista no continúe y vuelva al campo de elegir opción.

Sé que estas cosas se consiguen con un bucle, y de hecho lo he intentado:
Código
  1. #! /usr/bin/python
  2. # Funcion
  3. def calculator(p1, p2, p3):
  4. if p1 == "1":
  5. print "El resultado es " + str(int(p2) + int(p3)) + "."
  6. elif p1 == "2":
  7. print "El resultado es " + str(int(p2) - int(p3)) + "."
  8. elif p1 == "3":
  9. print "El resultado es " + str(int(p2) * int(p3)) + "."
  10. elif p1 == "4":
  11. print "El cociente es " + str(int(p2) / int(p3)) + " y el resto " + str(int(p2) % int(p3)) + "."
  12. # Menu
  13. print "1) Suma \n2) Resta \n3) Producto \n4) Division \n5) Ayuda"
  14. # Variables
  15. while True:
  16. opcion = raw_input("Introduzca su opcion: ")
  17. if opcion == "5":
  18. print "Para utilizar la calculadora, debe escribir el numero de la opcion elegida en el campo 'Introduzca su opcion'. A continuacion, introduzca los dos operandos en sus respectivos campos."
  19. if opcion == "1" or "2" or "3" or "4":
  20. break
  21. else:
  22. print "La opcion introducida no es valida"
  23. op1 = raw_input("Primer operando: ")
  24. op2 = raw_input("Segundo operando: ")
  25. # Ejecucion
  26. calculator(opcion, op1, op2)

Es evidente que no sé crear un bucle correctamente, ya que escriba lo que escriba salta a pedir los operandos. ¿Algún entendido me puede echar un cable? Gracias de antemano ;D.
27  Programación / Programación C/C++ / Re: Libro para empezar a programar en C/C++ en: 7 Enero 2011, 14:21 pm
Muchisimas gracias a todos, me miraré los libros que me habéis dicho y me daré una vuelta por el centro a ver si encuentro el de anaya y le echo una ojeada :D
28  Programación / Programación C/C++ / Libro para empezar a programar en C/C++ en: 6 Enero 2011, 16:53 pm
Saludos, quiero inciarme en esto de la programacion, y al final he decidio empezar por C/C++. He estado mirando los libros que han posteado en el foro, pero no cual elegir. Quiero alguno que sea, a ser posible, liviano y claro. ¿Cual me recomiendan? Gacias por adelantado,
29  Sistemas Operativos / Windows / Error en windows 7 en: 2 Julio 2010, 14:14 pm
Hola, tengo instalado windows 7 y frecuentemente me salta una ventana diciendo que el Servicio de perfil de usuarios dejo de funcionar. Googlee un poco y encontre una "solucion", el problema es que era de windows vista y no conseguia aplicarla al 7, aunque son muy parecidos los S.O. ¿Teneis alguna otra solucion? Gracias
30  Comunicaciones / Redes / Re: Problema al abrir puertos en: 1 Julio 2010, 12:09 pm
Gracias a ambos por responder, pero el scanner que me has dado madpitbull tambien me dice que lo tengo cerrado. He probado a usar el Angry IP scanner y nada, puerto cerrado. ¿alguna otra solucion?
Páginas: 1 2 [3] 4
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines