« first day (2235 days earlier)      last day (887 days later) » 

12:10 AM
¿Por que en python al hacer una copia de una lista y luego aplicar reverse() a dicha copia, la variable origunal se ve pisada ?
esta bien que la variable copia se 'reversee', pero, ¿por que tambien la original?
filas=[["8"],["7"],["6"],["5"],["4"],["3"],["2"],["1"]]
columnas=[["a","b","c","d","e","f","g","h"]]
reversiadas=filas
reversiadas.reverse() print(filas)
print(reversiadas)
 
 
2 hours later…
2:32 AM
alguien me ayuda con el pedo de las relaciones interpersonales con las tablas en mysql...
 
 
4 hours later…
6:55 AM
@AgileSoul Hay dos nombres y un solo objeto. En Python, A=B no hace una copia de B, sino que deja A y B apuntando a lo mismo. Cualquier cambio en uno se refleja en el otro. Ahora, si A sea inmutable (un string, por ejemplo), se genera una copia. Las listas son mutables; no se copian.
 
7:07 AM
Si quieres copiar una lista, usa A = B.copy().
 
 
2 hours later…
9:36 AM
Jellou
 
 
1 hour later…
10:49 AM
Vaya... habeis cerrado esta @Christian
-1
Q: Exception logger. No entiendo como puedo probar este código

Python PrenticeSoy nuevo y en una tarea tengo que construir un exception logger. Me dan una estructura y me piden elevar tres tipos de error. Para mi *args y **kwargs son los parámetros pero debo probar la salida. Es decir que debo llamar una función para el código y debo crearla?. No es clara la instrucció...

justo cuando iba a responderla. A mi no me parece que requiera mucha clarificación, está bastante clara
el usuario ha escrito un decorador, pero no sabe cómo aplicarlo a otra función y cómo probar si funciona correctamente
 
11:14 AM
@abulafia listo..
 
Gracias!
 
11:35 AM
@gbianchi Lista la respuesta :-)
 
@abulafia me sonaba a decorador pero no estaba seguro
Voy a tener más cuidado
 
Estan muy bruscos, todos, con los cierres...
como si cerrar las cosas fuera un premio.. sobre todo en preguntas, que muy probablemente sean salvables :(
 
11:57 AM
Sí, yo también observo mucha premura en los cierres. A menudo alguien pone una mala pregunta. Además del comentario pidiéndole que la arregle, suele recibir inmediatamente un negativo y un voto de cierre. En cuestión de pocas horas ya ha recibido tres votos y está cerrada. Todo ello mientras el OP quizás esté durmiendo (puede estar en otra zona horaria!). Yo esperaría como mínimo 16h tras el comentario de advertencia
 
gbianchi me enseñó a esperar 1 min. El dijo que si alguien está interesado por resolver su problema va a permanecer en el sitio y leerá los comentario y 1 min es suficiente para que responda a un comentario
 
Pues no estoy de acuerdo. No sabemos nada de la vida de otras personas. Por muy interesado que pueda estar en la respuesta, lo mismo en ese momento le llaman por teléfono para un asunto urgente
no veo por qué hay que estar en tensión atendiendo a los mods bajo la presión de que si no corriges rápidamente la pregunta será cerrada. SO no es un chat en tiempo real
por la misma razón, un OP tampoco debe suponer que su pregunta vaya a ser respondida inmediatamente y que si no es así es que "nadie sabe la respuesta"
los tiempos de reacción en SO creo que deben medirse en horas y no en minutos
 
Opino lo mismo. Seré más cuidadoso
Sabes si en python existen las dependencias de desarrollo? Es decir módulos que no serán instalados cuando se pase a la etapa de producción
 
12:16 PM
si, puedes separarlos en el setup.py
pero todo eso está relacionado con la creación de paquetes de cara a publicarlos para pip
de modo que quien haga pip install instale tu paquete y las dependencias necesarias para que funcione (pero no las dependencias que tú como desarrollador instalaste, por ejemplo pytest y otras)
todo el asunto de la gestión de paquetes es bastante farragoso, la verdad. Hay un gestor llamado poetry que se supone que te simplifica la vida (y que es más robusto de cara a manejar dependencias complicadas) pero nunca lo usé
 
@Christian cuando dije un minuto, no era un minuto por reloj!
@abulafia y casi por eso tenemos el proyecto py abandonado donde trabajo...
 
@gbianchi Pero supongo que es un problema generalizado de cualquier entorno de desarrollo mínimamente complejo. En js tienes el infame node_modules que crece cual agujero negro, en Android tienes el infame gradle y miles de problemas de dependencias en las que si cambias un dígito de una minor version de algun requisito ya nada funciona...
Y a la vez supongo que en todos estos casos, la razón última de la complicación es una mala gestión por parte del usuario/desarrollador, que al no comprender claramente el problema que hay debajo, no se molesta en arreglarlo sino por "fuerza bruta", dando palos de ciego y complicándolo aún más
 
@abulafia no no.. el problema fue mas de deploy.. en todos los otros, tenes un path de deploy claro, donde el deploy se hace automatico..
en python, con el tema del entorno y los pip, se hacia mas complejo
 
incluso docker, que venía a resolver ese problema, puede caer también en lo mismo si en los Dockerfiles no especificas claramente qué versión de qué imagen y de qué cosa instalas, y confias en que la versión latest vaya a funcionar siempre bien
 
ahora, si lo metemos en un contenedor, se soluciona...
 
12:26 PM
@gbianchi En realidad es bastante simple también. Un entorno virtual no es nada especial, salvo una carpeta que contiene el ejecutable y las librerías necesarias. Es una cápsula de deploy
el problema es cuando usas en un mismo script pyhon librerías que están en su entorno virtual y otras que no lo están (pero que son accesibles al intérprete por estar en carpetas de sistema)
pero eso suele deberse a un error del desarrollador que instaló cosas fuera del entorno sin darse cuenta
 
@abulafia claro.. pero pensa.. como lo automatizas para que yo solo mande un .py y pase todo solo en produccion? sin docker ;)
 
Pues en producción obviamente necesitas como mínimo un interprete python, a poder ser de la misma versión que el usado en desarrollo. Lo que copias a producción es un requirements.txt junto con tus scripts, y entonces en producción haces:
python -m venv entorno
entorno/bin/python -m pip install requirements.txt
entorno/bin/python mi_script.py
la única dependencia que tienes ahi es el intérprete python usado en el primer comando
 
@abulafia todo esto, lo deberia hacer un tercero que no conoce de .py absolutamente nada.. y la tercer linea no la podia ejecutar.. en su momento, lo hablamos...
problemas internos de como se hace un deploy en mi compañia...
 
aha
seguro que de todas formas tiene solución :-)
 
si si.. hicimos unos engendros para que ejecutar siempre el mismo .py, pero que internamente llamaba a otra clase que en realidad era el programa...
pero el usuario, siempre ejecutaba exactamente lo mismo...
y bajaba los paquetes con pip.. inclusive el programa a ejecutar...
pero ahora si podemos usar docker, todo se simplifica...
 
12:46 PM
Claro. Docker es la solución a "en mi ordenador funciona bien". Despliega tu ordenador en producción.
 
1:00 PM
@gbianchi Solucione el problema del otro día haciendo un override a la implementación.
 
@gbianchi haa.... yo lo tome muy literal
@abulafia más que crear mi propio paquete de pip solo quiero crear el ejecutable de mi intérprete
Para el funcionamiento no se requiere más que la importación de sys y por eso es que pytest esta de más (al igual que el directorio que contiene los test)
 
@Orion ni idea de que me hablas
 
2:03 PM
@gbianchi Sinceramente, era la respuesta que estaba pensando que me ibas a dar jajajajajaja
@gbianchi Era de esto
 
@Orion ah pero no tenia ni idea de que hablabas...
 
2:27 PM
 
2:46 PM
@abulafia ayuda ._.
hay no
me falló un test
Listo!
 
3:09 PM
Terminé la primera versión de mi intérprete!!
Aunque no soporta los ciclos while
 
 
2 hours later…
5:04 PM
@MauricioContreras Hablame bro..
Como va todo?
 
 
3 hours later…
8:02 PM
@MauricioContreras como vas , que dice el fin de semana
 
8:40 PM
@JoseAntonyMundacaAngeles hey. Todo bien.
@JuanPerez epa chamo. Resolviste?
 
Resolvi bro. Ya esta todo bien.
 
@MauricioContreras perfecto , aca aprendiendo react
 
Alguien se le ocurre esto... como puedo ordenar los datos sin utilizar sort en python?
jsc_arr = np.array(jsc_lista_contactos)

for x in jsc_arr:
    x.jsc_antiguedad
    print(x)
jsc_lista_contactos = <class 'list'>
jsc_arr = <class 'numpy.ndarray'>
Ando buscando una manera de ordenar los valores de mayor a menor por jsc_antiguedad
Alguien se le ocurre algo?
 
@JuanPerez si no vas a usar sort, tenes que hacer un ordenamiento....
y programarlo a mano vos....
 
estaba viendo eso pero no encuentro como hacerlo :@
@gbianchi y utilizando el sort como puedo ordenarlo por la columna jsc_antiguedad
?}
 
9:37 PM
@JuanPerez desconozco python y como se usa el sort
 
@PatricioMoracho No puedo utilizar numpy para hacer el ordenamiento.. Alguna forma de hacerlo manual?
 
@JuanPerez Por que no puedes usar un sort sobre lo que parece ser un numpy.ndarray?
 
Es que esa es la idea buscar alguna alternativa que no sea con funciones ya predefinidas
 
entonces obviamente tenes que programar el sort vos... volvemos a lo de mas temprano...
 
@JuanPerez O sea no quieres una función ya armada? entonces como te dijo gonzalo, tienes que escribir tu función de Sort, un buen lugar por dónde empezar: programiz.com/dsa/bubble-sort
 
10:29 PM
def ordenamiento(lista):
    for n in range(len(lista) -1, 0, -1):
        posicion_maxima = 0

        for l in range(1, n + 1):
            if lista[l] > lista[posicion_maxima]:
                posicion_maxima = l

        temp = lista[n]
        lista[n] = lista[posicion_maxima]
        lista[posicion_maxima] = temp
jsc_arr = np.array(jsc_lista_contactos)

for x in jsc_arr:
    anti = x['antiguedad']
    ordenamiento(anti)
Intente hacer algo así...
    lista[n] = lista[posicion_maxima]
TypeError: 'str' object does not support item assignment
Obtengo ese error.
 
11:11 PM
Si el error esta en la linea: lista[n] = lista[posicion_maxima]
el problema es que lista es una cadena y no una lista
 
11:24 PM
@PatricioMoracho Como puedo solucionar eso?
 
@JuanPerez x['antiguedad'] es una lista?
Se supone que quieres ordenar una lista no?
 
<class 'int'>
{'nombre': 'Patricio', 'cedula': 222, 'telefono': 222, 'antiguedad': 20, 'tiene_carnet': 'si'}
{'nombre': 'Juan', 'cedula': 222, 'telefono': 222, 'antiguedad': 15, 'tiene_carnet': 'si'}
Esto es lo que contiene x
Lo que quiero hacer es poder ordenar los registros de forma desc por antiguedad
 
Entonces anti no es una lista, le estas pasando cualquier cosa a ordenamiento, ese es el problema. Por otro lado no entiendo por que vas de jsc_lista_contactos a un array de numpy si no vas a ordenar usando las funciones de numy. jsc_lista_contactos es una lista? que contiene?
 
jsc_lista_contactos es una lista..
import numpy as np

"""

El departamento de fidelización de una empresa requiere almacenar información de sus clientes más fieles. La solución debe incluir mínimo 2 clases con sus respectivos atributos y métodos (adicionales al método constructor). Se requiere un programa que contenga las siguientes opciones en su menú.
1)	Agregar cliente (nombre, cédula, teléfono, antigüedad en años, si tiene carné de fidelización o no).
2)	Mostrar clientes.
3)	Mostrar clientes por antigüedad.
4)	Mostrar clientes que no hayan recibido carné de fidelización.
Esto es lo que tengo hecho Patricio..
 
11:51 PM
jsc_lista_contactos es una lista dónde cada elemento es un diccionario, y lo que buscas es ordenar esta lista en función de cierto dato (antiguedad) que hay en cada diccionario. El tema es que tienes que adaptar tu rutina de ordenamiento para que logre procesar la estructura de datos, ahora mismo solo escribiste una rutina que ordena una lista con cadenas.
El quid de la cuestión es la comparación de los valores en la función de ordenamiento: lista[l] > lista[posicion_maxima], tienes que adaptar esto a la lista jsc_lista_contactos.
 

« first day (2235 days earlier)      last day (887 days later) »