Foros del Web » Programando para Internet » Python »

Aprendiendo Python.

Estas en el tema de Aprendiendo Python. en el foro de Python en Foros del Web. Vengo de aquí: http://www.forosdelweb.com/f14/algo-...9/#post4745010 Basado en esto: http://www.forosdelweb.com/f14/algo-...9/#post4744662 Pero aparentemente estaba mal el tutorial o no debí pegar el código sino escribirlo. Ahora me han ...
  #1 (permalink)  
Antiguo 28/09/2015, 13:01
Avatar de Tachikomaia  
Fecha de Ingreso: agosto-2011
Mensajes: 403
Antigüedad: 10 años, 11 meses
Puntos: 5
Aprendiendo Python.

Vengo de aquí:
http://www.forosdelweb.com/f14/algo-...9/#post4745010
Basado en esto:
http://www.forosdelweb.com/f14/algo-...9/#post4744662

Pero aparentemente estaba mal el tutorial o no debí pegar el código sino escribirlo.

Ahora me han recomendado esto:
https://launchpadlibrarian.net/18980...ra%20todos.pdf

Y decidí abrir un tema en esta sección porque ya es Phython y no programación general.

Bueno, me recomendaron ir a menú inicio, programas y entrar desde ahí. Ahora es sólo 1 ventana, no 2 como antes. Me dijeron que presione enter luego de escribir el código (esta vez escrito, no copiado) y está bien.

Duda: ¿Cómo se ponen 2 líneas seguidas?

Seguiré leyendo el libro.
__________________
"No se puede borrar hasta", PHPeros.
  #2 (permalink)  
Antiguo 28/09/2015, 13:15
Avatar de Tachikomaia  
Fecha de Ingreso: agosto-2011
Mensajes: 403
Antigüedad: 10 años, 11 meses
Puntos: 5
Respuesta: Aprendiendo Python.

No entiendo cómo funciona. O sea, abro IDLE (Python GUI), escribo una líena y si apreto enter se ejecuta el código, por lo que no puedo agregar una línea. Y si abro el archivo que tengo guardado puedo poner líneas apretando enter pero el programa no se ejecuta cuando apreto enter, claro está. ¿Pero por qué en un caso pasa una cosa y en otro otra? ¿cómo controlo o configuro que pase una cosa u otra?
__________________
"No se puede borrar hasta", PHPeros.
  #3 (permalink)  
Antiguo 28/09/2015, 13:27
Avatar de Tachikomaia  
Fecha de Ingreso: agosto-2011
Mensajes: 403
Antigüedad: 10 años, 11 meses
Puntos: 5
Respuesta: Aprendiendo Python.

Puse new file y pude hacerlo
print "hola mundo"
raw_input()

Bien, pero es que nadie me dijo que hubiera que poner new file cuando se abre eso, y en ninguna cosa que haya usado he tenido que hacerlo, el new file se crea cuando abres el programa, en word, en paint, etc. Todo bien, pero no es práctico que no sea así.
__________________
"No se puede borrar hasta", PHPeros.
  #4 (permalink)  
Antiguo 28/09/2015, 18:03
Avatar de Tachikomaia  
Fecha de Ingreso: agosto-2011
Mensajes: 403
Antigüedad: 10 años, 11 meses
Puntos: 5
Respuesta: Aprendiendo Python.

Dice el libro:
Cita:
desde Python 2.4 contamos también con un nuevo tipo Decimal, para el
caso de que se necesite representar fracciones de forma más precisa.
Sin embargo este tipo está fuera del alcance de este tutorial, y sólo es
necesario para el ámbito de la programación científica y otros relacionados.
¿Cómo se crea una variable de esas? Googlé pero no encontré fácil. En algún momento mis variables deben tener valores exactos si no quiero recurrir a cálculos que parecen complicados:
http://rinconmatematico.com/foros/in...8776#msg338776

No he visto que tan preciso es el doble en python pero no confío mucho en ese tipo de var.

PD: ¿Para hacer raiz cuadrada debo hacer 2 ** 0.5? Lo probaré pero en caso de que eso no funcione también agradezco la solución a eso.
__________________
"No se puede borrar hasta", PHPeros.
  #5 (permalink)  
Antiguo 30/09/2015, 19:11
Avatar de Tachikomaia  
Fecha de Ingreso: agosto-2011
Mensajes: 403
Antigüedad: 10 años, 11 meses
Puntos: 5
Respuesta: Aprendiendo Python.

Esto:
elif Fin == -1:
me da un error de sintaxis.

¿Qué hago?

Encontré esto:
http://stackoverflow.com/questions/1...x-error-python
...con lo cual pude solucionar el problema en otro elif que tenía, pero no este. Este está en el borde, definitivamente no tiene espacios delante.

El código entero (por si precisan saber eso) sería algo así (he cambiado nombres así que no le busquen sentido a los nombres):
Código Python:
Ver original
  1. A = 1
  2. B = 1
  3. Fin = 0
  4. while Fin == 0:
  5.     A = B
  6.     if A == 5:
  7.         Fin = 1
  8.     elif B < 5:
  9.         B = B+1
  10.     else:
  11.         Fin = -1
  12. if Fin == 2:
  13.     # A.
  14. elif Fin == 1:
  15.     # B.
  16.     print "Hola mundo!"
  17. else:
  18.     print "Hola mundo."    
  19. raw_input()

Pensé que el problema podía ser que luego del elif no había código (sólo un comentario). Puse crear una variable ahí para probar y se arregló, pero me aparece un cartel donde decía algo como que no se podía conectar posiblemente por una firewall. Que yo sepa. no pedí conectar.

Reinicié y me funcionó bien. Ahora ¿por qué en principio me decía que # es un error o no sé qué? Ahora ya no me lo dice.

Más o menos tengo lo necesario para hacer lo básico de lo que quiero hacer. Me falta:
- Cómo generar archivos con nombres que yo elija y guardar en ellos las variables que yo elija
- Cómo cargar de archivos que yo nombre, las variables que tengan dentro.
¿Alguna idea sobre eso? Seguiré leyendo el libro y buscaré, pero en el libro ya me he salteado varias cosas porque de momento no las voy a usar y son medias complicadas para mí.

Gracias.

Edit:
En la página 82 acá:
https://launchpadlibrarian.net/18980...ra%20todos.pdf
...dice cosas pero no logro ver cómo pueden servirme suficiente. Necesito por ejemplo crear un archivo de nombre A_B_C.txt donde A, B y C sean sustituídas por los valores de esas variables. Eso no debe ser tan difícil, imagino que con write y sumas se puede hacer. El tema es que además quiero que ese archivo contenga (ya no el nombre sino el contenido, lo que se vería al abrirlo) por ejemplo esto:
D=1
E=1
Es decir, que ciertas variables del programa se copien en un archivo. ¿Cómo lo hago?
Además debo cargar esas variables en ciertos momentos y que sustituyan a las actuales. El libro habla de leer líneas, pero yo no quiero líneas ¿entendí bien? ¿se me entiende? Si grabo "D=1,E=1" y luego tengo que convertir eso en variables se me complica bastante ¿no se pueden cargar directamente?
__________________
"No se puede borrar hasta", PHPeros.

Última edición por Tachikomaia; 30/09/2015 a las 19:44
  #6 (permalink)  
Antiguo 01/10/2015, 01:46
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 14 años, 5 meses
Puntos: 606
Respuesta: Aprendiendo Python.

Dos cosas que te quería comentar de tu código.

1) Cuando "FIN == 2", no haces nada. En la línea 13 simplemente tienes un comentario. Has probado a poner un "print" ahí para ver si así no te falla?

2) Cuando salgas del bucle While, la variable "FIN" NUNCA va a valer 2, por lo que el primer "if" nunca se va a entrar.
__________________
Aviso: No se resuelven dudas por MP!
  #7 (permalink)  
Antiguo 01/10/2015, 20:17
Avatar de Tachikomaia  
Fecha de Ingreso: agosto-2011
Mensajes: 403
Antigüedad: 10 años, 11 meses
Puntos: 5
Respuesta: Aprendiendo Python.

Cita:
Iniciado por Malenko Ver Mensaje
Dos cosas que te quería comentar de tu código.

1) Cuando "FIN == 2", no haces nada. En la línea 13 simplemente tienes un comentario. Has probado a poner un "print" ahí para ver si así no te falla?
Aparentemente el error estaba ahí, sí:
Cita:
Puse crear una variable ahí para probar y se arregló
Como sabrás, en otros lenguajes ese tipo de cosas no dan error, no sabía que podía darlo.

Cita:
2) Cuando salgas del bucle While, la variable "FIN" NUNCA va a valer 2, por lo que el primer "if" nunca se va a entrar.
Cierto, por ahora ese caso no ocurra. Lo puse porque si sigo avanzando sí ocurrirá.

En este momento mi principal duda es cómo guardar variables en un archivo externo y cómo cargar variables de un archivo un externo. Y también, cómo se haría algo así:
Código ActionScript:
Ver original
  1. M.A = 0;
  2. do {
  3.     M.A = M.A+1;
  4.     M.VA = Number(eval("M.V"+M.A));
  5.     set ("M.V"+M.A, M.VA);
  6.     if (M.CompChar>M.VA) {
  7.         M.Verif = 0;
  8.         M.A = M.SitElms;
  9.     }
  10. } while (M.A<M.SitElms);
Eso convierte V1, V2, V3, etc (M.SitElms determina hasta qué número) en variables de tipo número y las compara con otra variable. "set" y "eval" sirven para que el nombre de las variables sean variables, por eso es que en el 1er caso se convierte y compara a V1, luego a V2, etc.

Mañana sigo buscando info, aunque sobre eso último (lo del código que puse) aún no he buscado.
__________________
"No se puede borrar hasta", PHPeros.
  #8 (permalink)  
Antiguo 02/10/2015, 20:37
Avatar de Tachikomaia  
Fecha de Ingreso: agosto-2011
Mensajes: 403
Antigüedad: 10 años, 11 meses
Puntos: 5
Respuesta: Aprendiendo Python.

Para crear un archivo, poder nombrarlo e incluirle algo sirve esto:
Código Python:
Ver original
  1. f = open("Nombre.Extensión","w")
  2. f.write("Contenido.")
  3. f.close()
http://www.afterhoursprogramming.com...ting-to-Files/

Para crear un archivo, poder nombrarlo e incluirle un int:
Código Python:
Ver original
  1. number = 1337
  2. f = open('filename.txt', 'w')
  3. f.write('%d' % number)
  4. f.close()
http://stackoverflow.com/questions/1...-to-a-txt-file

No entiendo sobre la "%d ", pero supongo que es cuestión de buscar más info. Aquí hay:
http://stackoverflow.com/questions/4...s-and-d-python
Usé write y no pickle porque el último me pareció más extraño (ni siquiera sé qué significa), pero teniendo en cuenta esto quizá sea más sencillo.
¿Salmuera...?

Vi que no se pueden sumar tipos de variables distintos, al menos
Código Python:
Ver original
  1. f = open(V1+V2+".txt", 'w')
por probar no me funcionó. Había definido las Vs, son ints, intenté que el nombre del archivo se base en las variables.

Supongo que una posible solución es convertirlas en strings, pero si las quiero usar como int es poco práctico. Y crear variables "clones" string no es muy eficiente que digamos.

Tengo entonces esa duda, cómo nombro un archivo usando variables, sin tener que convertirlas en texto (o que la conversión sólo dure mientras se nombra el archivo). Ejemplo:
V1=1
V2=1
Crear archivo V1+"_"+V2+".txt"
En este caso 1_1.txt, pero claro dependerá del valor de las variables.

En cuanto a grabar muchas variables he visto esto:
http://stackoverflow.com/questions/6...bles-in-python
y:
http://stackoverflow.com/questions/1...including-name

...pero hay varias cosas que no entiendo y por hoy hasta aquí llegué.
__________________
"No se puede borrar hasta", PHPeros.
  #9 (permalink)  
Antiguo 05/10/2015, 08:34
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Aprendiendo Python.

investiga sobre formato de cadenas (string formatting)

Etiquetas: programas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 07:52.