100 Days of Code: The Complete Python Pro Bootcamp for 2022

CaNaRy_r00lz

#599 #600 Si la razon era que tenia puesto forward 1 y claro si haces eso 10 veces, pues terminas teniendo un offset pero cegato de mi no me di cuenta hasta un rato despues de haber preguntado aqui xD

Lo hice totalmente diferente a como ella lo hizo, mi codigo es mas largo pero me gusta mas, pk hago las lineas por coordenadas y con for loops, quizas no sea lo mas aconsejable ya que es mucho mas codigo que el de ella, y seguramente se podria reducir mucho, pero como ella lo hace sinceramente no me gusta xD, lo hice asi por si te pica la curiosidad

2 respuestas
gonya707

#601 si que deberías acostumbrarte a hacerlo todo en un solo bucle, piensa que estas repitiendo el código una y otra vez pero solo cambiando el número restando 50. Cjando haces un range() para un bucle puedes especificar que vaya de 50 en 50 asi que no hay excusa. Te recomendaría que hicieses una copia de este código e intentes adaptarlo a tener un solo bucle(filass) con otro bucle dentro (columnas) o al reves.

1 1 respuesta
Rivendel

#601 te complicas mas que ella porque no sabes la documentacion de la tortuga, yo cuando hice el juego del snake hice las posiciones del mapa a fuerza bruta con una matriz de coordenadas y redondeando las coordenadas en la posicion de la cabeza de la serpiente respecto de la matriz de posiciones, cuando veo la solucion era una putisima chorrada

spoiler
1 respuesta
CaNaRy_r00lz

#602 Seguramente sea muy facil, pero no consigo hacer que funcione reduciendolo todo a 1 for loop

#603 Me "complico" pk repito la misma accion pero lo que hace ella de ir de izq a derecha subit y volver lo veo analiticamente mas complicado, que poner unas coordenadas de partida y sumar a las coordinadas de partida "x" cantidad

2 respuestas
gonya707

#604 Simplemente tienes un bloque de codigo que se repite una y otra vez con minimos cambios, esto:

tim.setposition(-250.00, -200.00)

for i in range(11):
    tim.speed(0)
    tim.dot(20,random.choice(color_list))
    tim.forward(50)
 

Lo unico que cambia cada vez es en tim.setposition(-250.00, -200.00) el segundo numero, que va desde -200 hasta 250 en pasos de 50

Asi que todo ese codigo que se repite puede resumirse en repetir el mismo bloque pero ese segundo numero que cambia como variable que responde a un rango. Los rangos en python puedes especificarles el comienzo, el final y el salto, asi: range(start, stop, step), en tu caso range(-200, 300, 50) El stop lo pongo en 300 en vez de 250 justos porque el ultimo paso siempre se lo salta (range(3) hace [0, 1, 2])

Con toda esta info mas detallada intenta hacerlo tu, la solucion es esta:

spoiler
1 respuesta
telemaco103

Yo me he puesto ahora un poquillo y sin saber el enunciado del problema lo he hecho en un doble for. Lo he puesto parametrizable para poder cambiar la posición inicial, número de filas y columnas, separación entre ellas, etc.

https://pastebin.com/NWphbpen

EDIT: #604 El problema de copiar y pegar todo el rato el mismo código es que si en lugar de 10 filas quieres 15 te toca copiar y pegar 5 veces más. Y si lo quieres hacer 100? Y 1000? No es muy escalable que digamos.

1 respuesta
CaNaRy_r00lz

#606 Si , entiendo lo que dices y tienes toda la razon, pero hacerlo asi como lo has hecho tu no me sale, es decir, leo lo que has puesto y todo tiene sentido, pero yo como lo estaba haciendo no conseguia cambiar de nivel.

Por cierto no entiendo pk pones esto " tim.setposition(Pos_x_init, Pos_y_init + y_steprow)" es decir, entiendo que declaras la posicion inicial pero pk pones "y_steprow" pk lo multiplicas?

Rows = 11
Columns = 10
Pos_x_init = -250.00
Pos_y_init = -200.00
x_step = 50.00
y_step = 50.00

Entiendo que haciendo eso tendrias
tim.setposition(-250.00, 200+50*11) no entiendo esa multiplicacion por 11

1 respuesta
telemaco103

#607 y_step es lo que te vas a desplazar en el eje "y" tras cada vez que se acabe de pintar toda la fila. Como row coge los valores [0,1,2,3,4,5,6,7,8,9], al multiplicarla por el step te queda [0,,50,100,150,200,...] que al sumarla a la posición donde has empezado te queda lo mismo que te ha puesto #605 con el range. No sé si me he explicado bien.

Y no te preocupes si así de primeras no sé te ocurren estas ideas, la programación precisa de una manera diferente de pensar que se va construyendo poco a poco con la práctica.

EDIT: Edito con tu edit. Fallo mío al poner las variables de nombre parecido. Fíjate que Rows es el número total de filas y row es el índice del bucle. row in range(Rows) hace que row vaya valiendo 0,1,2,3,4....

1 respuesta
CaNaRy_r00lz

#608 Si entiendo que se desplaza en el eje "y" pero es que si quiero que solo se desplace 50 al multiplicarlo por 11 no se desplaza 50 o yo es que no lo entiendo del todo, el range entiendo que repite "x" dentro de ese rango que pones, pero tu al multiplicarlo no

1 respuesta
telemaco103

#609

spoiler

A ver si así lo ves mejor

1 1 respuesta
CaNaRy_r00lz

#610 Vale ya entendi que querias hacer, ese era mi problema por eso no conseguia hacerlo pk al tener fuera el +50 pretendia que cada vez que hiciera el ciclo fuera sumando esos +50 a un valor que habia cambiado y tu lo que haces para aumentarlo es coger la base 50 y multiplicarlo por cada fila que quieres aumentar.
Menudo error mas estupido ahora que lo he visto, gracias a que thonny te hace el paso a paso y puedes verlo, sino no creo que lo hubiese entendido , muchas gracias!

2 respuestas
Rivendel

#611 para esas cosas siempre es bueno el debug, y para esa clase de cosas tambien es bueno hacer una funcion. Lo de arriba lo puedes hacer en 2 for anidados, o hacer una funcion que te haga la fila con la variable que sea la y (lo que seria el segundo for) y llamas a la funcion con un for variando por ejemplo, si lo ves mejor asi

for i in range(-350,350,50):
pintar_fila(i)

1
telemaco103
#611CaNaRy_r00lz:

tu lo que haces para aumentarlo es coger la base 50 y multiplicarlo por cada fila que quieres aumentar.

Si te acuerdas de matemáticas del instituto, al final lo que hago es aplicar la ecuación de una recta y=mx+n (pendiente * variable independiente + ordenada en el origen) porque los valores que quieres obtener pertenecen a una recta donde la variable dependiente toma los valores [-200, -150, -100, -50, 0, 50....], cosa que tambien te hace el range(-200, 300, 50), lo que pasa que yo estoy más habituado a irme a la matemática siempre que puedo.

1
22 días después
Eckooo

Está a 10 pavos.

18 días después
ApeLord

Es un curso compatible con ASIR?

Varo777

Muy buenas, acabo de empezar a cursar ASIR y mirando el temario veo que el tema programación se da justito, entonces, mi intención es ir haciendo este curso por las mañanas una o dos horitas tranquilamente. Mis preguntas son:

¿Como anda el curso a día de hoy? Se actualiza o es un temario básico general.

¿Cada cuanto lanzan rebajas de precio? Veo que se supone que ahora hay una promoción de primer curso y tal, pero cada vez que quiero comprarla se me planta 94 euros en vez de los 18 que marca la promoción.

Un saludo

1 respuesta
B

#616 la verdad? Ya le toca una actualización al curso... Pero aún así está muy muy bien.

Rebajas cada pocas semanas hay alguna

2 1 respuesta
Varo777

#617 Muchas gracias
Justo ahora enredando, desde la web en ingles, me ha dejado comprarle por 12 euros. Me pondré con ello mañana mismo.

Entiendo que al material se puede acceder siempre ya.

1 2 respuestas
Rivendel

#618 creo que si yo lo compre hace bastantes meses y lo empece hace 2 o asi

1 1 respuesta
isnotavail

#618 si es para siempre, el problma es lo que te dicen, que no está actualizado, pero con la mayoría de cursos de udeny pasa lo mismo, pero en mi opinión para aprender desde 0 tampoco es necesario , te sirve para asentar las bases y luego ya tu solo te actualizas las novedades de la nueva versión.

1 1 respuesta
Varo777

#619 #620 Bien entonces, a ver que tal se da, ya me pasaré por aqui si tengo dudas.

B

¿Conocéis uno más actualizado a todo esto?

CaNaRy_r00lz

Pero si lo que da son conceptos basicos, que mas da que este actualizado o no?

2 respuestas
isnotavail

#623 En mi opinion ninguna, porque es lo que tu dices, te da para asentar los conceptos basicos y luego ya tu actualizas a las novedades de las nuevas versiones, ademas siempre puedes tirar de venv para usar exactamente la misma version que usa Angela , el tema es que por lo que veo en los comentarios de udemy, mucha gente se queda atascada ya que lo que se ve en el video no coincide 100% con lo que escriben ellos si no tienen la misma version de python, o por ejemplo con el editor que ella usa, atom, hay funciones que a mi no me funcionaban en su dia por el eslint y al principio pensaba que era error del codigo, hasta que me instale vscode y funcionaba perfectamente.

1
Rivendel

#623 hasta donde llege lo unico que no me funciono es lo de mandar mails automaticamente y es culpa de que google y yahoo mail lo chaparon y no del curso en si, de momento todo funciono bien

1 1 respuesta
gonya707

#625 si, yo igual. Hice el curso el año pasado y por aquel entonces lo del mail funcionaba , pero ya no. Por lo demás no se en que aspecto el curso está fuera de la actualidad. Si hay que ponerle una oega es que gran parte de lo de flask y de data science está por escrito en vez de video y pemsaba que con el tiempo lo pasarían a video , pero parece que se quedará así para los restos

1 respuesta
isnotavail

#626 Yo tengo el de paginas web tambien que es mas antiguo que el de python, y hace poco metieron un nuevo modulo de web3 , gratuito para los que ya tenian el curso, no descartaria que lo actualizara en un futuro, pero es cierto que en otras plataformas actualizan los cursos de forma mas frequente, por ejemplo en la de zero to mastery de Andrei Neagoie, pero claro tampoco valen los 12€ que valen en udemy.

1 respuesta
gonya707

#627 si que lo valen, yo tengo el ZtM de machine learning en udemy y nunca he comprado nada en udemy fuera de rebajas. No se si es que no tendrán todos los cursos en udemy o algo pero el de ML ya te digo que si que ha valido 12 pavos

1 respuesta
isnotavail

#628 Creo que en udemy no estan 100% actualizados, la gracia de ZtM es que es un servicio de subscripcion que te da acceso a todos los cursos, tienen subscripcion mensual, anual o de por vida, que incluyen los cursos nuevos que vayan metiendo, si solo te interesa uno no vale la pena, pero si quieres seguir varios (hay algunos temas que vas enlazando cursos conforme vas progresando) esta bastante bien.

B

Y una pregunta, no os habéis planteado la idea de hacer un proyecyo común, a modo práctica, y practicar git también, trabajo en equipo, etc y hacer algo?