Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Cuestiones Sobre Python

Iniciado por AgeR, 11 de Junio de 2004, 05:05:57 PM

« anterior - próximo »

AgeR

 Estoy intentando empezar con python, pero veo que tiene una filosofía muy distinta a lo que estaba acostumbrado hasta ahora...

Veamos, he estado mirando un buen rato y tal, pero no he encontrado cosas como :

Como puedo crear una cadena de 64 carácteres por ejemplo? Algo así como char cadena[64];
Y como puedo crear una variable de un determinado tipo sin asignarle ningún valor? Rollo int i;
Una variable que sea float, ocupa el mismo tamaño que los floats de C por ejemplo?

A ver si me echáis una mano, porque parece tonto, pero esto es nuevo para mí  y ando un poco confuso :ph34r:  

DraKKaR

 En python no se declaran las variables antes de usarlas. Si tu necesitas una variable para almacenar una cadena, simlpemente haz:
svar="Tocame los huevos"
si quieres un entero haz:
ivar=69

Fijate que al no declarar variables, no le dices en ningún momento a python el tipo de esa variable: python es tan listo que ya lo adivinará por sí mismo. También peudes usar una variable como entero y cuando kieras usarla como una cadena. Esto es perfectamente valido:

kk=69
kk="asdkjfh"


Además no tienes porque especificarle el tamaño maximo de carqacteres como en C a una cadena. No hay limitación, puedes añadir o quitar elementos dinamicamente:

cadena="juasjuajuas"
cadena+= "89"
cadena=cadena[:-1]


No puedes (creo) crear variables en python sin darle un valor. Pero tampoco lo necesitas, en python no eres tu el que maneja la gestion de memoria, y para python (y para tí también deberia serlo) una variable sin nada dentro, no sirve para nada.

Desde que aprendí python me gustó mucho este lenguaje. Es muy muy expresivo, con una sola linea en python se peuden hacer cosas que en C necesitarias un programa entero.
Pero claro, todo esto se paga a costa de velocidad de ejecución :P

AgeR

 Mu bien, pero a ver, que de esto tú sé que sabes también :

Estoy haciendo un exportador para Blender, y una de las cosas que me preguntaba era por ejemplo, cómo guardar una cadena de 256 carácteres. Es decir, en C tendríamos char cadena[256]; Luego esto lo guardamos a un archivo. En python no podría hacerse no? Quiero decir, guardaría hasta el total del tamaño real ocupado. Esto tampoco es un problema en sí, ya que guardando la longitud de esa variable antes de grabarla se resolvería. Es una curiosidad más que nada...

Y otra cosa, como se guardan archivos binarios? Quiero decir, intento grabar una variable que contiene un float, pero al abrir el archivo con un editor de texto me aparece el float tal cual, como texto.
Lo he abierto así :
   Fichero = open(NombreFichero, "wb")

Hmmm está visto que tendré que cambiar de mentalidad (otra vez)  (nooo)

Gracias!

DraKKaR

 En el caso de la cadena, lo que yo haría sería rellenar la cadena conc aracteres hasta ke opcupe el máximo que quieras y luego grabarla a un archivo, o guardar esa cadena al archivo y despues rellenar los caracteres que faltan en el archivo. Aunque viene a ser lo mismo. De todos modos, cuando yo guardo cadenas, guardo antes la longitud de la misma seguida por los caracteres dela cadena. Asi tengo una longitud variable sin necesidad de rellenos extraños.

Para lo de los ficheros binarios, yo utilizo un método un poco extraño. Creo un array (existe un módulo array que te permite crear arrays del tipo que quieras) donde meto los datos que quiera grabar como binarios. Hago esto porque la clase array te permite volcar todo su contenido a un fich binario.
Por ejemplo, para guardar un entero, haría lo siguiente:

file=open(nombre_fichero.val,"wb")
anumv=array.array('l')
anumv.append(numVertsTotales)
anumv.tofile(file)
file.close()


No encontré otra forma de hacerlo.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.