lunes, 23 de febrero de 2009

VARIABLES EN PYTHON

Las variables en Python tienen una longitud arbitraria. Pueden estar formadas por letras y numeros,pero deben comenzar con una letra o guion bajo. Debe tener mucho cuidado con la sensibilidad es decir no es lo mismo variable a Variable asi que por convencion es mejor evitar variables en mayusculas.


Los tipos de variables que Python maneja son:


Numerica (entera,flotante,compleja)(12)(12.5)(6+3i)

cadenas (''hello world'')

booleano (True,False)(verdadero,Falso)



De las siguientes variables cuales no son correctas??


>>>77police=12

>>>_km=77

>>>$hack=”Hola Mundo”

>>>cma$=66

>>>clase=12

>>>is=3

>>>class=”Curso de python”


las que estan mal son las rojas ;) , en la primera la variable inicia con un numero esto no esta permitido en python. Cualquier variable que contenga simbolos especiales como $ o cualquier otro como ()=?¿%$·”! no son permitidos en una variable y Python se va a quejar.

Ahora miremos is y class porque estan mal??? si cumple con la regla de variables de Python, estan mal porque son palabras reservadas de Python, pero que eso?? pues es una palabara que realizan algo especifico con un tratamiento especial otras palabras reservadas por Python son:
(and,continue,else,elif,for,assert,break,def,except,exec,finally,from,global,if,import,in,lambda,not,or, pass,raice,return,try,while), ningunas de estas palabras pueden ser usadas como nombre de variables.

Como vemos el tipo de dato no lo definimos ya que Python es dinamico el internamente realiza esa operación por nosotros no es como en Java y C++ que son estaticos y a las variables hay que indicarle manualmente el tipo de dato:


int v=12 # variable entera

long n=1500000 # variable entera grande

float z=12,3 #variable punto flotante


como vemos esta asigacion es totalmente estatica y Python realiza eso por nosotros, si queremos saber el tipo de dato de nuestra variable hacemos lo siguiente:


tenemos

>>>a=12

>>>b=”hola mundo”

>>>c=12.5


verificamos el tipo de las variables anteriores:


>>>type(a)
type 'int'
>>>type(b)
type 'str'
>>>type(c)
type 'float'


ENTEROS:

el rango de un entero en python -2.147.483.648 a 2.147.483.647 superando esto la variable automaticamente pasara hacer long

>>>n=2147483647
>>>type(n)
type 'int'

aumentamos en 1 la variable para sobrepasar el rango de enteros en 1


>>>entero=2147483648
>>>type(n)
type 'long'

y vemos que nuestra variable paso hacer de tipo long podemos definir cualquier cantidad posible a una variable el unico limite es nuestra memoria ram :) entre mas ram, numeros extremadamente grandes podra almacenar una variable en Python.


Podemos indicar que una variable entera Python la tome como long:


>>>n=21L #Puede ser l o L mayuscula
type(n)
type 'long'


podemos asinarle el valor a la variable de forma octal:


>>>n=027 #anteponiendo el 0 (cero) indicamos que esta en modo octal que este caso es 23 en decimal

>>>print n

23


podemos asignarle en forma Hexadecimal:


>>>n=0x17 #anteponiendo el 0x: en este caso 0x17 equivale a 23 en decimal


ahora mira algo curioso en Python digamos que tengo una variable de esta forma

>>>x=5

que pasa si hago:

>>>x=x/2

2

???? por que carajo da 2 no deberia dar 2.5 a Python se le olvido dividir :) lo que pasa aquí es que si utilizamos dos operandos enteros Python determina que la variable resultado sea tambien un entero y por eso el resultado solo me devuelve la parte entera si queremos que nos devuelva el resultado como es debemos indicar un operando como real asi:

>>>x=5.0

>>>x=x/2

2.5

o bien tambien podemos indicar el otro operando como real

>>>x=5

>>>x=x/2.0

2.5

otra solucion sera:

>>>x = float(5) / 2

2.5


REALES:


Bueno muchos ya conocen este tipo de dato que utilizamos en C++ o en Java en C++ tenieos el float y el Double que es igual al float pero con mayor precision en python siempre va ser de doble precision 1 bit para el signo, 11 para el exponente y 52 para la mantisa osea si mi matematicas a un no me falla para ir por la calculadora :D claro que mi Python es como una calculadora, miremos y vera que si :):
>>>1+11+52
64

es un total de 64bits esto significa que los valores que podemos representar van desde ±2,2250738585072020 x 10-308 hasta
±1,7976931348623157×10308.



>>>r=0.77

>>>n=0.00001

si les parece aburrido escribir 5 veces el 0 (cero) podemos hacer:

>>>n=0.1e4


Hasta aquí todo bonito y facil pero esto es totalmente valido para las versiones de python inferior a su ultima version 3 que trae pequeños cambios en muchas cosas que para algunos programadores pusieron el grito en el cielo pero para otros lo ven como la evolucion del mismo lenguaje asi que miremos dichos cambios para este tema de las variables:

uno de los cambios es que el tipo entero y float se unificaron, solo va existir tipo entero, pero no te alarmes que a dicho entero le podas asignar la cifra que quieras bueno hasta donde aguante tu memoria Ram

veamos:


Python 3.x


>>> n=10000000000000000000000000000

si estuvieramos en Python 2.x este tipo de variable seria un float pero vemos que tipo arroja

>>>type(n)
type 'int'

vemos que si es verda :) unificaron el tipo de dato ahora solo existe int

se acuerdan de esto:

>>>x=5/2
2

y que teniamos que hacer unos de los dos operadores reales o utilizar la funcion float para que nos arrojara el resultado de 2.5 pues en Python 3.x esto fue corregido veamos:


>>>5/2

2.5


“excelente” :)


otro ejemplo:

>>>x= 6/5

>>>print x

File "", line 1
print x
^
SyntaxError: invalid syntax


error pero que joda ahora que hice mal :( no lo que pasa es que hay que recordar que el tradicional print antes de python 3 era una palabra reservada y ahora se convirtio en una funcion asi que desde python 3.x debes hacer ahora:


>>>print(x)

1.2


Ahora si bueno espero que no se desanimen porque el mundo necesita mas programadores en Python :) el tipo real permanece como lo vimos anteriormente.

bueno hasta aqui lo que tiene que ver con lo que son variables en python, cualquier error o aporte que nos ayuden para mejorar es bienvenido y no se le olviden que sus consejos y cualquier aporte que tenga que ver con Python es bienvenido y les recuerdo que al igual que ustedes estoy en el proceso de aprendisaje de Python :) bueno Animo que en unos dias estaremos haciendo aplicaciones y quien quita jueguitos 2d y en opengl :O asi que a estudiar y Programar bye.

write by Hackchan


6 comentarios:

  1. Hola,

    Cómo haces esto en Python 3.x:

    >>>n=21L #Puede ser l o L mayuscula
    type(n)
    type 'long'

    Me sale SyntaxError: invalid syntax

    ResponderEliminar