Archivos de la categoría ‘Python Básico’

Día 18 “Variables no inicializadas en Python”

En Python, la primera operación sobre una variable debe ser la asignación de un valor. No se puede usar una variable a la que no se ha asignado previamente un valor.

Como puedes ver, se genera una excepción NameError, es decir, de “error de nombre”.

El texto explicativo precisa aún más lo sucedido “el nombre a no esta definido”.

La asignación de un valor inicial se denomina inicialización de la variable. Entonces en Python no es posible usar variables no inicializadas.

>>> a+2

Traceback (most recent call last):

  File "<pyshell#0>", line 1, in -toplevel-

    a+2

NameError: name 'a' is not defined

Día 17 “Asignaciones con operador en Python”

Hola a todos quienes siguen este blog, he regresado, después de 2 meses sin post, he vuelto!!
Hoy hablaremos sobre las asignaciones con operador.
Fíjate en la sentencia i=i+1 ; aplica un incremento unitario al contenido de la variable i.
Incrementar el valor de una variable en una cantidad cualquiera es tan frecuente que existe una forma compacta en Python. El incremento de i puede denotarse así:
>>> i+=1
No puede haber ningún espacio alguno entre el + y el = , Se puede incrementar una variable con cualquier cantidad, incluso con una que resulte de evaluar una expresión.
  

>>> a=3
>>> b=2
>>> a+=4*b
>>> a
11

 

Todos los operadores aritméticos tienen su asignación con operador asociada.
z+=2
z-=2
z*=2
z/=2
z%=2
z**=2
Te informo que estas formas compactas no aportan en nada nuevo, salvo quizás alguna comodidad para algunos programadores más experimentados, así que no te preocupes de aprender todas estas formas compactas, incluso para que no te confundas ignóralas por el momento.

Día 16 “Identificadores y Palabras Reservadas en Python”

Recuerda que un identificador es un nombre dado a un elemento de un programa, en el post anterior vimos las variables.
Un identificador esta formado por cualquier sucesión de letras, dígitos y caracteres de subrayado que no comience por digito, distingue entre mayúsculas y minúsculas, pueden tener cualquier longitud, no puede coincidir con el nombre de una palabra reservada, se deben escoger identificadores significativos, es decir que poseen mayor legibilidad.
Ejemplo de identificadores validos
Radio
RaDio
ContAlumnos
Cont_Alumnos
Num1
 
Ejemplo de identificadores no validos
2E2
Miércoles
Cont-Alumnos
Conjunto Primero
 print (palabras reservadas).
1_cantidad
Recuerda que Python distingue las mayúsculas de las minúsculas, entonces por ejemplo area, Area, AREA, aRea , son 4 identificadores distintos, el ultimo ejemplo aRea no es recomendado, dado su poco legibilidad.
Dado que eres libre de llamar a una variable con el identificador que quieras, hazlo con clase, es decir escoge siempre nombres que guarden relación con los datos del problema, si por ejemplo vas a utilizar una variable para almacenar una distancia, llama a la variable distancia y evita nombres que no signifiquen nada, de este modo, los programas serán más legibles
En todo lenguaje de programación existen palabras reservadas, es decir no se pueden utilizar estas palabras como identificador de una variable, función, método, etc
Aquí la lista de las palabras reservadas hasta este momento, pueden agregarse más palabras reservadas en el futuro dependiendo de las diferentes actualizaciones que puede sufrir el interprete.
and, del, fo, is, raise, asser, elif, from, lambda, return, break, else, global, not, try, class, except, if, or while, continue, exec, import, pass, yield, def, finally, in, print.

Día 15 “Variables y Asignaciones en Python”

En ocasiones deseamos que nuestro programa recuerde ciertos valores para usarlos más adelantes, por ejemplo necesitamos realizar un programa que calcule el perímetro de un circulo, en este programa necesitaremos una variable llamada pi.
Una variable es una estructura que contiene datos y recibe un nombre único dado por el programador, mantiene los datos asignados a ella hasta que un nuevo valor se le asigne o hasta que el programa termine.
El acto de dar un valor a una variable se le denomina asignación, al asignar un valor a una variable que no existía, python reserva un espacio en la memoria, almacena el valor en él y crea una asociación entre el nombre de la variable y la dirección de memoria de dicho espacio.
  

>>> pi = 3.14
>>> r = 1.2
>>> perimetro =2*pi*r

 

Debes tener en cuenta que las asignaciones son mudas, es decir, no provocan salida por pantalla, si deseamos ver cuánto vale una variable, podemos evaluar una expresión que sólo contiene a dicha variable.
  

>>> perimetro
7.5359999999999996

 

Así pues, para asignar valor a una variable basta ejecutar una sentencia como ésta:
variable = expresión
Ten cuidado, el orden es importante, hacer expresión = variable, no es equivalente.
Una asignación no es una ecuación matemática, sino consiste en evaluar la expresión a la derecha del símbolo igual (=), y guardar el valor resultante en la variable indicada a la izquierda del símbolo igual.
Se puede asignar valor a una misma variable cuantas veces se quiera, el efecto es que la variable, en cada instante, sólo recuerda el ultimo valor asignado, hasta que se le asigne otro valor.
  

>>> a=1
>>> 2*a
2
>>> a+1
2
>>> a=3
>>> a+a
6

Post realizado gracias al libro “Introducci

Día 14 “Enteros largos y Operadores Binarios en Python”

Hola hoy voy a ser dos post en uno, ya que realmente son breves Python posee un rico conjunto de tipos de datos, en el post anterior hablamos de los números complejos, ahora vamos a ver brevemente los enteros largos. El rango de los números flotantes puede resultar insuficiente para ciertas aplicaciones. Python ofrece la posibilidad de trabajar con números de cifras arbitrariamente largos. Un entero largo siempre finaliza con la letra L.  Aquí un ejemplo Fíjate números enteros cambian automáticamente a enteros largos cuando es necesario.

Observa la “L” que aparece, aunque 2 y 31 son números enteros normales, el resultado de evaluar 2**31 es un entero largo. Esto es así porque los enteros normales se codifican en complemento a 2 de 32 bits, y 2**31 no puede representarse en complemento a 2 de 32 bits

Si bien los enteros largos resultan cómodos por no producir nunca errores de desbordamiento, debes tener presente que son muy ineficientes: ocupan mucha más memoria que los enteros normales y operar con ellos resulta mucho más lento.
Bueno también hablaremos de otros operadores, recuerdas que hemos visto los operadores suma, resta, multiplicación, división, modulo, elevación, etc, además de los operadores lógicos o booleanos, hoy te voy a presentar otros ya que en Python existe una variedad elevada, que en el transcurso de este blog se irán presentando.
Hay operadores que están dirigidos a manejar la secuencia de bits que codifican los números enteros.
El operador binario & calcula la operación “y” bit a bit.
El operador binario  |  calcula la operación “o” bit a bit
El operador binario  ^ calcula la operación “o exclusiva”, la diferencia con la anterior es que la “o exclusiva” devuelve True si y sólo si los dos operandos son falsos.
El operador unario ~ invierte los bits de su operando.
Tienes además, los operandos binarios <<, >> , que desplazan los bits a izquierda o derecha tantas posiciones como se las indiques. Aquí una serie de ejemplos que ayudaran a entender estos operadores
Aun no te queda claro porque esos resultados, aquí una breve explicación
Para el primer ejemplo 5&12, nos da 4, porque??
En binario tenemos la expresión 5 que equivale (00000101) y la expresión 4 que equivale (00001100) si tenemos 5&12 entonces tenemos 00000101 & 00001100, que nos da como resultado 00000100, que equivale a 4.
La expresión nosotros la damos en números naturales pero se ejecuta como si fueran números binarios, el resultado también se muestra como en numero natural.
Bien será entendiste el ejemplo, pero no sabes aun como se pasa un numero binario a decimal o viceversa.
Extraje un ejemplo del portal wikipedia en su sección números binarios, espero te quede claro.
Decimal a binario 
Se divide el número decimal entre 2 cuyo resultado entero se vuelve a dividir entre 2 y así sucesivamente. Una vez llegados al 1 indivisible se cuentan el último cociente, es decir el uno final (todo número binario excepto el 0 empieza por uno), seguido de los residuos de las divisiones subsiguientes. Del más reciente hasta el primero que resultó. Este número será el binario que buscamos. A continuación se puede ver un ejemplo con el número decimal 100 pasado a binario.
100 |_2
 0   50 |_2
      0  25 |_2         –> 100   1100100
          1  12 |_2
              0  6 |_2
                 0  3 |_2
                      1 1
Otra forma de conversión consiste en un método parecido a la factorización en números primos. Es relativamente fácil dividir cualquier número entre 2. Este método consiste también en divisiones sucesivas. Dependiendo de si el número es par o impar, colocaremos un cero o un uno en la columna de la derecha. Si es impar, le restaremos uno y seguiremos dividiendo por dos, hasta llegar a 1. Después sólo nos queda tomar el último resultado de la columna izquierda (que siempre será 1) y todos los de la columna de la derecha y ordenar los dígitos de abajo a arriba. Y luego se haría un cuadro con las potencias con el resultado.
Ejemplo:
100|0
 50|0
 25|1   –> 1, 25-1=24 y seguimos dividiendo por 2
 12|0
  6|0
  3|1
  1|1   –> 100   1100100
Existe un último método denominado de distribución. Consiste en distribuir los unos necesarios entre las potencias sucesivas de 2 de modo que su suma resulte ser el número decimal a convertir. Sea por ejemplo el número 151, para el que se necesitarán las 8 primeras potencias de 2, ya que la siguiente, 28=256, es superior al número a convertir. Se comienza poniendo un 1 en 128, por lo que aún faltarán 23, 151-128=23, para llegar al 151. Este valor se conseguirá distribuyendo unos entre las potencias cuya suma den el resultado buscado y poniendo ceros en el resto. En el ejemplo resultan ser las potencias 4, 2, 1 y 0, esto es, 16, 4, 2 y 1, respectivamente.
Ejemplo:
  20=   1|1
  21=   2|1
  22=   4|1
  23=   8|0
  24=  16|1
  25=  32|0
  26=  64|0
  27= 128|1           128+16+4+2+1=151   10010111
Espero halla quedado claro, cualquier duda en comentarios, lo que iba a ser un post breve se convirtió en un gran post, nos vemos, saludos y gracias por sus comentarios.
Nota: Extracto del libro Introducci 

Día 13 “Números Complejos en Python”

Python también ofrece la posibilidad de trabajar con números complejos.
Los números complejos son una extensión de los números reales, estos representan todas las raíces de los polinomios, a diferencia de los reales.

Entonces los números complejos son aquellos que tienen parte imaginaria.
Una de las características de Python es que podemos trabajar con números complejos, ya que la gran mayoría de los lenguajes de programación carecen de esta.

Un número complejo puro(número imaginario) finaliza siempre con la letra j, que representa el valor de la raíz cuadrada negativa.
Un número complejo con parte real se expresa sumando la parte real a un complejo puro.
Algunos ejemplos de números complejos
4j
1+2j
2.0+3j
Ahora en el interprete de Python

En Python los números complejos con una parte real distinta de cero se puede crear con la función complex(real, imag), como en el ejemplo.

Los números complejos siempre son representados como dos números de punto flotante, la parte real y la imaginaria, para extraer éstas partes de un número complejo z utilice z.real y z.imag

Las funciones de conversión a punto flotante y entero (flota, int, long) no funcionan para los números complejos, no hay una forma correcta para convertir un número complejo en un número real, podemos utilizar abs para obtener su magnitud (como flotante) o z.real para obtener su parte real.


Entradas siguientes »