Breve introducción a la sintaxis de Python 3 | Parte 2

Operadores aritméticos

Python admite los operadores aritméticos habituales:
+  Adición
-  Sustracción
*  Multiplicación
/  División
**  Exponenciación
%    División modular  
La sintaxis es sencilla si solo se quieren realizar operaciones aritméticas, se utiliza al igual que una calculadora sencilla, Python aplica jerarquía de operaciones, también pueden usarse paréntesis para agrupar las operaciones, por ejemplo:
  1. >>> 2 + 2
  2. 4
  3. >>> 50 - 5*6
  4. 20
  5. >>> (50 - 5*6) / 4
  6. 5.0
  7. >>> 8 / 5  # la división siempre devuelve un número de punto flotante
  8. 1.6
Algunos de estos operadores también se definen para cadenas y secuencias de la siguiente manera:
  1. >>> s = ’Hola ’
  2. >>> m = ’mundo’
  3. >>> a = [123]
  4. >>> print(3*s) # Repite tres veces la cadena
  5. Hola Hola Hola
  6. >>> print(3*a) # Repite tres veces la lista
  7. [123123123]
  8. >>> print(a + [45]) # Agregar mas elementos a la lista
  9. [12345]
  10. >>> print(s + t) # Concatenación
  11. Hola mundo
  12. >>> print(3 + s) # Esta adición no tiene sentido, pero podría convertir el 3 a una cadena y así poder añadirlo
  13. Traceback (most recent call last):
  14. File "<pyshell#13>", line 1in <module>
  15. print(3 + s)
  16. TypeError: unsupported operand type(s) for +: ’int’ and ’str
Python también tiene operadores de asignación aumentada, como a + = b, que son familiares para los usuarios de C. Los operadores aumentados y las expresiones aritméticas equivalentes se muestran en la siguiente tabla.

Que es lo mismo que:
a += b  a = a + b
a -= b  a = a - b
a *= b  a = a * b
a /= b  a = a / b
a **= b  a = a ** b
a %= b    a = a % b  

Operadores de comparación

Los operadores de comparación (relacionales) devuelven Verdadero o Falso. Estos operadores son:
<Menor que
>Mayor que
<=    Menor o igual que  
>=    Mayor o igual que  
==Equivalente
!=  Diferente 
Los números de diferente tipo (entero, punto flotante, etc.) se convierten a un tipo común antes de realizar la comparación. De lo contrario, los objetos de diferente tipo se consideran desiguales. Aquí están algunos ejemplos:
  1. >>> a = 2 # Entero
  2. >>> b = 1.99 # Punto flotante
  3. >>> c = ’2’ # Cadena
  4. >>> print(> b)
  5. True
  6. >>> print(a == c)
  7. False
  8. >>> print((> b) and (!= c))
  9. True
  10. >>> print((> b) or (a == b))
  11. True

Condicionales

La construcción if ejecuta un bloque de declaraciones (que deben estar sangradas) si la condición devuelve True. Si la condición devuelve False, se omite el bloque.
   if   condición:   
bloque
El condicional if puede ser seguido por cualquier número de construcciones elif (abreviatura de "else if")
   elif   condición:   
  bloque
que funcionan de la misma manera. La cláusula else
   else   condición:   
   bloque
se puede usar para definir el bloque de declaraciones que se ejecutarán si ninguna de las cláusulas if-elif es verdadera. La función sign_of_a de abajo ilustra el uso de los condicionales.
  1. def sign_of_a(a)#Definimos la función
  2.     if a < 0.0# Condicion if
  3.        sign = 'negative'
  4.     elif a > 0.0# Condicion elif
  5.        sign = 'positive'
  6.     else:  #Condicion else
  7.        sign = 'zero'
  8.     return sign
  9. a = 1.5
  10. print('is ' + sign_of_a(a)) #Ocupamos nuestra función definida en 1, en función del valor de la variable a
Ejecutar el programa da como resultado la siguiente salida
is positive

Bucles o Loops

La construcción while
   while   condición:   
   bloque
ejecuta un bloque de sentencias si la condición es True o verdadera. Después de la ejecución del bloque, la condición se evalúa nuevamente. Si aún es Verdadero, el bloque se ejecuta nuevamente. Este proceso continúa hasta que la condición se vuelva False o falsa. La cláusula else
   else   condición:   
   bloque
se puede usar para definir el bloque de declaraciones que se ejecutarán si la condición es falsa. Aquí hay un ejemplo que crea la lista [1, 1/2, 1/3, ...]:
  1. nMax = 5 #Definimos el limite
  2. n =1 #Definimos el valor inicial
  3. a = [] #Creamos una lista vacía
  4. while n < nMax: #Se define un loop o ciclo
  5.    a.append(1.0/n) #Agrega los elementos a la lista a
  6.    n = n+1
  7. print(a)
La salida del programa es
[1.00.50.333333333333333310.25]
También existe la declaración for, la cual requiere un objetivo y una secuencia sobre la cual el objetivo se repite. La forma de la construcción es
   for  objetivo in secuencia:   
bloque
Puede agregar una cláusula else que se ejecute después de que el ciclo for haya terminado.
El programa anterior podría escribirse con la construcción for como
  1. nMax = 5 #Limite superior
  2. a =[] #Lista vacia
  3. for n in range(1,nMax)#ciclo for
  4.    a.append(1.0/n) #Agrega elementos a la lista a
  5. print(a) #Le pedimos nos muestre la lista a
En este ejemplo n es el objetivo y el objeto de rango es el intervalo cerrado entre 1 y nMax, [1, 2, ..., nMax-1], este intervalo fue creado llamando a la función de rango, range(). El resultado de este código es el mismo que cuando usamos la sentencia while.
[1.00.50.333333333333333310.25]
Cualquier ciclo puede ser terminado por la declaración
 break 
Si hay otra causa asociada con el bucle, no se ejecuta. El siguiente programa, que busca un nombre en una lista, ilustra el uso de break y else junto con un ciclo for.
  1. list = ['Perry''Fogler''Cengel''Smith'] #Lista objetivo, son apellidos de autores de textos de ingeniería química
  2. name = eval(input('Escribe un nombre: ')) # Solicitud de entrada de Python
  3. for i in range(len(list))#Ciclo for
  4.     if list[i] == name:
  5.         print(name,'el el numero',i + 1,'en la lista')
  6.         break #Comando break
  7. else:
  8.     print(name,'no se encuentra en la lista')
En la linea 2, Python nos pide introduzcamos un nombre a buscar con la función input(), y lo escribimos manualmente, para este ejemplo se ocuparon las nombres de Fogler y Tobias, aquí están los resultados de las dos búsquedas:
Resultado de la búsqueda 1
Escribe un nombre: Fogler
Fogler el el numero 3 en la lista
Resultado de la búsqueda 2
Escribe un nombre: Tobias
Tobias no se encuentra en la lista
La instrucción
 continue 
nos permite omitir una parte de un ciclo iterativo. Si el intérprete encuentra la declaración continue, vuelve inmediatamente al comienzo del ciclo sin ejecutar las declaraciones que siguen a continuación. El siguiente ejemplo compila una lista de todos los números entre 1 y 99 que son divisibles por 7.
  1. x = [] # Creamos una lista vacía
  2. for i in range(1,100)#Ciclo for
  3.    if i%!0continue #Si no es divisible por 7, omita el resto del bucle
  4.    x.append(i) # Añadir i a la lista
  5. print(x) #Imprimir la lista
La salida de este programa es la siguiente
[714212835424956637077849198]
Hasta aquí concluye la segunda parte, en la tercera y ultima parte de esta introducción veremos como utilizar las funciones, devolver e introducir la información al interprete; crear, leer y modificar archivos, ademas de el uso de librerías.

Referencias

Comentarios