#59 Precisamente si no tienes compatibilidad con algún módulo que necesites usar (O alguna otra preferencia personal) no tiene sentido no pasarse a python 3. Ya quedan muy pocas librerías que no sean compatibles con python 3.
Alguien me sabría decir si existe alguna forma (que no sea añadir a mi "utils" algo hecho por mi) para castear listas a arrays de numpy de forma recursiva?
#64 Numpy si no recuerdo mal permite castear listas a arrays de su tipo, pero me da que lo de recursivo te lo vas a tener que sacar de la manga tú...
Hola chicos, tengo una duda, tengo que evaluar una operación tipo string y dar un valor sin ningún tipo de funcion(estilo eval o exec).. como puedo hacerlo ?
gracias de antemano !!
#69 Te refieres a que te pasan una función en una string y tienes que ejecutarla/leerla sin eval/exec? :?
def execute(words):
with open ("/tmp/temp_python.py","w+") as out:
out.write(words)
import subprocess
try:
ans=subprocess.check_output("python /tmp/temp_python.py")
subprocess.call("rm /tmp/temp_python.py")
except:
ans="Fail!"
return ans
¯_(ツ)_/¯
#74 Como todo, depende del problema que tengas entre manos. Ahora mismo Python está creciendo en el mundillo este, pero R tiene muchísimos módulos específicos que marcan la diferencia. Yo, si no es para ámbito profesional, usaría Python por su facilidad.
una preguntita sobre vpython y wxpython.
Tengo una ventana creada y le inserto un marco de vpython para que se muestren las cosas.
La cosa es que quiero que ese marco se muestre SIEMPRE y no solo cuando creo un objeto
sabeis como se pone?
scene.Show o scene.display no funcionan xd
He pensado crear un objeto invisible para que asi siempre se muestre la ventanita, pero es una solucion un poco cutre xD
y incrustar y desincrustar un display en un widget alguien sabe?xD llevo dias frustado con esta mierda y una no se como desinsertarlo sin perder lo que hay dentro sdfñhsdflkjshdfñjsdfh
Hola, tengo que desarrollar una serie de algoritmos en python (y no he tocado nada de él). Tengo una duda conceptual respecto a la herencia, a ver si alguien me la puede solucionar:
En el siguiente código tengo una variable que es frontera, sin embargo, no está definida ni declarada en ningún sitio de la clase BúsquedaGeneral (aparece por primara vez en la función buscar). Aquí os dejo la clase para que podáis mirarlo vosotros mismos:
class BúsquedaGeneral:
def __init__(self, detallado=False):
self.detallado = detallado
if self.detallado:
self.Nodo = NodoConProfundidad
else:
self.Nodo = NodoSimple
self.explorados = ListaNodos()
def es_expandible(self, nodo):
return True
def expandir_nodo(self, nodo, problema):
return (nodo.sucesor(acción)
for acción in problema.acciones_aplicables(nodo.estado))
def buscar(self, problema):
self.frontera.vaciar()
self.explorados.vaciar()
self.frontera.añadir(self.Nodo(problema.estado_inicial))
while True:
if not self.frontera:
return None
nodo = self.frontera.sacar()
if self.detallado:
print('{0}Nodo: {1}'.format(' ' * nodo.profundidad, nodo))
if problema.es_estado_final(nodo.estado):
return nodo.solución()
self.explorados.añadir(nodo)
if self.es_expandible(nodo):
nodos_hijos = self.expandir_nodo(nodo, problema)
for nodo_hijo in nodos_hijos:
if nodo_hijo not in self.frontera and nodo_hijo not in self.explorados:
self.frontera.añadir(nodo_hijo)
Ahora tengo la siguiente clase, la cual en teoría según he leído hereda de BúsquedaGeneral:
class BúsquedaEnAnchura(BúsquedaGeneral):
def __init__(self, detallado=False):
super().__init__(detallado)
self.frontera = ColaNodos()
Aquí si estamos declarando y dando valor a la variable frontera.
¿Cómo es posible que un atributo que no está declarado en la superclase, sino en la subclase, sea usado por la superclase?No se si me explico ni si es esto lo que hace, me he metido de lleno en python con problemas de IA con experiencia 0 previamente en python y me está costando. A ver si alguién puede echarme una mano y explicarme que es lo que está ocurriendo aquí exactamente.
Un saludo y muchas gracias de antemano.
Creo que lo que está pasando es que, al heredar de la superclase, esos métodos pasan a ser parte de la subclase (Que es precisamente la idea de la herencia), y entonces la subclase puede usarlos con sus atributos (En este caso, frontera).
Haz una prueba e intenta usar esas funciones directamente desde una instancia de BusquedaGeneral, ya verás cómo peta.
Solo te va a funcionar si llamas al método buscar() desde la subclase BusquedaEnAnchura, ya que ahí si existe 'frontera'.
Si intentas ejecutar buscar() directamente desde la superclase o desde otra subclase que no defina frontera, te petará.
El motivo por el que funciona es por que python no tiene tipado estático, así que no comprueba en tiempo de compilación si los miembros existen (en Java o C++ eso no funcionaría por que no compilaría), pero en python sí funciona por que no es hasta en tiempo de ejecución que se comprueba si existe o no.
He empezado esta semana un curso de Python después de mucho tiempo sin programar y tengo una dudilla que lo mismo es un poco tonta.
El objetivo es reproducir la función len(), obviamente sin usarla. El problema es que cuando acabo de recorrer la cadena y contar caracteres no se como parar el bucle sin saber el final de la cadena. He probado con
while cadena[i]!=""
Pero supongo que no puede comparar algo que no existe, me sigue dando el error de bucle infinito.
#87 En principio una cadena ascii aleatoria.
Definir una función que calcule la longitud de una cadena dada. (Hemos visto que Python
dispone de la función len para realizar esta operación, la idea es reproducir la
funcionalidad sin hacer uso de ella).
def longitud(cadena):
i=0
while cadena[i]!="":
print cadena[i], i
i = i + 1
i = i + 1 #Sumar uno más al total (inicio = 0)
return i
prueba="Agapito"
print "Longitud de la cadena '",prueba,"': ",longitud(prueba)
Y la salida que muestra pues es:
Longitud de la cadena ' Agapito ': A 0
g 1
a 2
p 3
i 4
t 5
o 6
Line 5: IndexError: string index out of range