[Python] Hilo general

LR

#1530 Como te dice #1529 sample te devuelve una lista.

Si no te quieres complicar, deja el ejercicio como lo tenias en #1526 y añade esto simplemente:

oppA = random.sample(data,1)
oppB = random.sample(data,1)

oppA = oppA[0]
oppB = oppB[0]

Cuando haces el sample te genera una lista, entonces te quedaria:

selected_dicts = random.sample(data,2)

## esto por dentro seria asi:
## selected_dicts = [
        {Cristiano Ronaldo, Footballer, Portugal},
        {Instagram, Social media platform, United States}
    ]

La solucion facil y fea la tienes con

if selected_dicts[0]["seguidores"] > selected_dicts[1]["seguidores"]:
    blablabla

Esto deberia funcionar pero no es como tienes que hacerlo. Al menos te deberia dejar ver la solucion para que ya tu solo te partas la cabeza buscando como hacerlo bien y bonito xD

1 1 respuesta
Lolerpopler

#1530 Uff, no quiero sonar duro, pero tienes que mirar el codigo y entenderlo mas detenidamente

selected_dicts = random.sample(data,2)

esta parte del codigo te va a elegir 2 items dentro de "data" y meterlos en una lista.

En esta segunda parte:

for item in selected_dicts:
    print(f'Compare A: {item["name"]},{item["description"]},{item["country"]}')
    print(f'Compare B: {item["name"]},{item["description"]},{item["country"]}')

estas iterando sobre los elementos de la lista, si la lista tiene 2 elementos, dara dos vueltas, en la primera el objecto "item" sera el primer diccionario elegido al azar, en este caso el de Cristiano Ronaldo, en la segunda vuelta sera el segundo objeto en la lista: "Instagram".
Esos dos print estan usando el objeto "item" en la misma iteracion, por eso te saca dos veces el mismo valor

1 1 respuesta
CaNaRy_r00lz

#1532 No, tranquilo, estoy aprendiendo y voy a seguir cometiendo muchos mas fallos y leer o interpretar las cosas de forma erronea hasta que aprenda.
#1531 Thanks, luego probare

#1429 #1430 Me he encontrado con este articulo https://www.phoronix.com/scan.php?page=article&item=python-311-benchmarks&num=1

Aunque no se que pensar pk el tio dice entre un 10% y un 60% mas rapido, supongo que dependiendo para que incluso un 10% puede ser una barbaridad

1 respuesta
CaNaRy_r00lz

Mierda, sorry por el doble post

hda

#1533 casualmente el jueves me fui a dormir con este vídeo:

3
inmor

He estado haciendo unos cuantos ejercicios de "web scraping" y la verdad que me han molado bastante, sabeis algun sitio donde aprender cosas básicas de CSS y HTML?

1 respuesta
PhDfailer

#1536 https://www.theodinproject.com/paths/foundations/courses/foundations

parte de HTML y CSS, las demás las puedes omitir si no te interesan

1
inmor

Llevo una hora dandole vueltas a que esta gilipollez funcione, cambiandolo de distintas maneras y siempre me sale un error.
De esta forma al fin funciona, pero no entiendo la razón por la que n no esta definida.

he cambiado la funcion 40 veces y en todas falla por algo xD

2 respuestas
Yekale7

#1538 Si estás empezando ten claro que pasos quieres seguir.

Dentro del try, quita el return n. Ese return n lo mueves fuera y posterior al while

1 respuesta
inmor

#1539 Lo de cambiar el return tambien lo hice ya. He probado a hacerlo con ifs y todo y que va. No entiendo porque no. Si me esta devolviendo el valor de n como un int. Pero luego me dice que is not defined.

1 respuesta
Fyn4r

#1538 Porque n solo está definida dentro de la función, una vez que termina la ejecución deja de existir.
Ah que la quieres devolver, entonces necesitas un

 n = choose_number() 
2 respuestas
Yekale7

#1540 Lo que dice #1541

pd: donde estás ejecutando el código?

1 respuesta
inmor

#1541 al fin, joder gracias tio

#1542 jupiter notebook, no se si es lo mejor, lo uso porque en el curso con el que empecé es el que usaban.

1 respuesta
gonya707

#1543 Ni lo mejor ni lo peor, tiene sus ventajas e inconvenientes como todo. Yo creo que los notebooks son bastante utiles para hacer tests y ejecutar bloques de codigo individualmente es genial. Para códigos largos prefiero un IDE algo más completo y con más opciones.

Pero vamos, si estás haciendo un curso concreto y usan jupyter, sigue con eso, ya tendras tiempo de probar otros métodos

2
CaNaRy_r00lz

Solo Thonny tiene ese debug mode que te ensenia paso a paso lo que va haciendo el codigo no? pk ahora tengo PyCharm pero no he visto que haga lo mismo, Thonny me gusta pero despues de estar probando PyCharm no hay color con el segundo

3 respuestas
Grise

#1545 Todos los IDEs tienen opción de debug. PyCharm también, pero no es tan simple como la de Thonny.

1 respuesta
gonya707

#1545 eso es cosa de thonny, pero vamos, siempre puedes poner prints de los pasos intermedios si algo no te esta funcionando, o usar breakpoints y debugear paso por paso mientras usas la consola para los pasos intermedios. En lenguajes como python el debugging está muy infrausado para lo util que es. Viniendo principalmente de programación de sistemas embebidos donde por defecto los IDEs te hacen debug y no run me parece curioso.

1 respuesta
inmor

#1545 No se si es lo mejor, pero una cosa que puedes hacer es: import pdb(pythondebugging) y poner set_trace() en la linea anterior del bug.
Abre como una especie de input que le puedes meter las variables y saber que es lo que son justo en el momento de antes del bug.

1 respuesta
CaNaRy_r00lz

#1546 Thanks, pero no es como Thonny que era lo que buscaba en PyCharm

#1547 A mi me ha ayudado mucho como lo hace Thonny para entender como funcionan las cosas y como pienso en mi cabeza que deberia funcionar y ver como lo hace

#1548 uhm no es lo que pensaba pero lo mirare thanks

Suena absurdo y supongo cuando tenga mas nivel lo sera tambien para mi, pero ver el paso a paso para mi es fundamental

Kaiserlau

Yo aprendí lo básico con el Shell de Python y el editorcillo que traia en Windows xd

Pd: para hacer scraping en jupyter vas al vuelo.

1
NocAB

¿Recomendáis algún libro de referencia de Python que sea reciente?

Había pensado leerme Fluent Python porque tiene buenas críticas y este año han publicado una nueva edición pero no parte desde los fundamentos (indica que empieza a partir de lo que se ve en el tutorial oficial).

Estoy con el tutorial oficial pero no sé si será suficiente y pienso que podría estar bien un libro para repasar y afianzar cosas como typos de datos, estructuras, complejidad, POO, etc.

Me he descargado Problem Solving with Algorithms and Data Structures using Python porque lo recomendó Hexan pero que su última edición sea de 2013 me hace dudar.

1 respuesta
LR

#1551

typos de datos, estructuras, complejidad, POO, etc.

Y para eso no te iría mejor algo de fundamentos de programación y oop en general en vez de buscar expresamente para Python?

1 respuesta
NocAB

#1552 puede ser, es por centrarme en el lenguaje que me interesa dominar.

Por ejemplo en el caso de POO lo he visto en java pero no he llegado a aplicarlo nunca en Python (para esto puede que use Python Object-Oriented Programming, pero de momento me gustaría un libro más general).

1 respuesta
Kaiserlau

#1553 poo en python la verdad es que es disfrutable. Le das con los clasicos ejemplos de perros y gatos y en 4 tardes esta done

spoiler

pero se lleva bien.

1
CaNaRy_r00lz

Ostias pero cuando leeis libros de programacion, como conio os acordais de todo, pk para mi es como leer un libro de formulas y luego intentar acordarte de todas o es para pillar conceptos basicamente?

2 respuestas
B

#1555 Para mi son libros de consulta... me quedo con la película de que aquí puedo consultar X y el día que lo requiera tiro de libro. Si terminas usando mucho "eso" pues te acuerdas al toque. Al final libros <-> internet no es muy diferente... de los libros se espera extraer unos datos contrastados ya que suelen estar escritos por gente de renombre que o bien trabaja mucho con ello (tiene importantes casos de éxito a sus espaldas) o directamente lo a inventado él y su equipo.
Si tu coco te da para ser una biblioteca andante pues de lujo, eso que te llevas.

1 respuesta
CaNaRy_r00lz

#1556 No muy distinto entonces de ingenieria, que tienes ciertos sitios de consultas y ya, pero aun asi no he sido capaz de leerme un libro que trata de minimos cuadrados, la mente se me pira me cuesta horrores concentrarme, no se si con esto es igual o son mas amenos de leer, hace tiempo pille de humblebundle un bundle de libros de python creo, luego miro y si quereis los comparto, auque supongo que no seran gran cosa

1 1 respuesta
PiradoIV

#1555 Yo creo que pillas conceptos y pista, se quedan latentes por tu cabeza hasta que recuerdas que lo puedes aplicar. De todas formas, tienes que practicar las cosas que vas leyendo, que si no es muy fácil olvidarlas al pasar de página.

1 1 respuesta
B

#1557 Justamente un libro para aprender un lenguaje no se como son, ni como están estructurados :/ yo tengo o bien libros de consulta (tablas con información) o de paradigmas y conceptos en general.

Pero vamos... no me atrae la idea de un libro donde te dedicas a leer programas escritos por otra persona y con los que no puedes interactuar... desde mi punto de vista se aprende mucho cuando rompes algo y tienes que arreglarlo. ¿porque se ha roto? ¿se rompe de esta otra manera? ¿como lo arreglo? Son preguntas que te llevarán a documentarte más a fondo... y de hecho es el día a día... tratar de reproducir el error y si no es algo con lo que hayas trabajado antes te tocará documentarte.

1 respuesta
CaNaRy_r00lz

#1558 Eso es ley de vida, o lo usas o lo olvidas, si tuviera memoria de elefante estaria forrado y retirado ya xDD
#1559 Entiendo

1 1 respuesta