/tech/ - Tech 2.0

Mode: Reply
Name
Subject
Message

Max message length: 4096

Opciones
Files
E-mail
Password

(used to delete files and postings)

Misc

Remember to follow the rules


Choroy 01/02/2025 (Thu) 14:44:49 1a4b85 No. 15729
What is the expected result of executing the following code? def my_fun(n): s = '+' for i in range(n): s += s yield s for x in my_fun(2): print(x, end='') la mas interesante en mi opinión
como funciona la lógica de ese for? for x in my_fun(2): print(x, end='') como usa my_fun como contador para un for?
sorry no entiendo lenguaje incel
>>15731 En estricto rigor no usa "my_fun" como 'contador' del for, sino que el resultado de my_fun. Dado esto, la única forma en que ese for funcione es que el retorno de my_fun sea un iterable. Dado que my_fun hace retornos con yield en vez de return (yield lo que hace es retornar una lista de cada elemento), entonces el código funcionaría. Analizando el código, se puede ver que: 1.- my_fun toma como parámetro un entero n, y retorna una lista de n strings donde cada elemento es el carácter '+' repetido 2 elevado a i veces. Por ejemplo, ['++', '++++', '++++++++']. 2.- El código principal llama a esta función con parámetro 2 y luego imprime todo junto los elementos de la lista, por lo que este caso el resultado sería '++++++', sin salto de línea final.
>>15732 Personalmente creo que si tienes trabajo, y sobretodo un trabajo bien pagado, tienes que ser tremendamente deforme o desagradable para no encontrar minita. Al menos todos mis compañeros de carrera, incluso los más nerds, están casados o tienen polola. A algunos les costó harto, es cierto, pero al final lo lograron.
>>15732 >lenguaje Python >lenguaje incel TODO EN ORDEN, KEK
>>15734 >Personalmente creo que si tienes trabajo, y sobretodo un trabajo bien pagado, tienes que ser tremendamente deforme o desagradable para no encontrar minita. Si eres bien pagado y llevas una vida austera, de inmediato filtras al 80% de las chilindias trepadoras aspiracionales. Así que no tener minita y ser desagradable no es un defecto, es una virtud.
>>15731 >>15733 No devuelve una lista, yield convierte a my_func en un generador pausando la ejecución interna de si misma mientras le entrega el control al for. Cuando éste hizo lo que debia hacer, le devuelve el control a my_func. En otros lenguajes como javascript, yield permite ingresar valores tambien si no recuerdo mal. Se diferencia de una función normal, en que si en vez de yield tuviera un return (obviamente después del for), se tendría que esperar a la generación del resultado, en cambio, yield permite integrar lógica externa en procesos internos y no necesariamente te obliga a entregar resultados.
>>15739 ah, yield.
2.99 MB, 320x180
>>15739 Tiene razón, mi decir "devuelve una lista" no es técnicamente correcto. Mi intención fue simplificar la explicación del programa, pero pudo haber llevado a alguien entender erróneamente la operación interna del yield. Me castigo.
>>15737 Podríamos decir que es Pyncel.
>>15729 NUNCA CACHE PARA QUE MIERDA SERVÍA EL YIELD, ERA COMO UN RETURN PERO MAS COMPLICADO. SUPONGO QUE DEBERÍA SER ALGO ASI: i=0 -> s=++ -> x=++ i=1 -> s=+++ -> x=+++ Y LA WEA DEBERÍA IMPRIMIR: +++++
>choroyes filtrados por un iterador calidad
>>15744 la sintaxis my_func no retorna nada que sea evaluable. También que es yield y que hace
>>15745 la función my_fun, quiero decir.
>>15743 AH QUE SOY AWEONAO HAGO UN FIX: i=0 -> s=++ -> x=++ i=1 -> s=++++ -> x=++++ Y LA WEA DEBERÍA IMPRIMIR: ++++++
574.26 KB, 517x482
>>15745 Es como un retorno pero puedes resumir la función. Cada vez que my_fun suspende su ejecución se asigna a x el valor del yield, y ocurre una iteración del ciclo for, repitiendo hasta que la función retorne.

Delete
Report