Está en la página 1de 14

4/1/2021 Programando con Python / Sentencias

Programando con Python Get a free wiki  |  Try our free business product log in help

Wiki Pages & Files Search this workspace

If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

The new Dokkio Sidebar from PBworks is a Chrome extension that makes it easy to link to relevant files from Gmail,
Drive, and Dropbox when you write emails or create content in Google Docs. Click here to book a half hour demo.

VIEW EDIT

   
Sentencias To join this workspace, request access.

Already have an account? Log in!


last edited by Wilderman Ceren 9 years ago Page history

Es en esencia la forma en la que el programador le indica a Python lo que su Navigator  

programa en si debe hacer. Abstracción: Funciones


 
ch01
Recordemos que:
  ch02
1. Los programas se componen de modulos
ch03
2. Módulos contienen sentencias.
3. Sentencias contienen expresiones. ch04
4. Las expresiones crean y procesan objetos. Contenido-Temático
 
Ej i i
Sentencias muy comunes: Pages Files options
 
 
SideBar  
Sentencias Rol Ejemplo 
Asignación  Crear referencias  a, *b = 'bueno', 'malo', 'tonto'   Excepciones
Septima Sesión
Llamadas y otras expresiones  Ejecutando funciones  log.write("spam, ham")  Sábado 2 de Abril de 2011
print  imprimir objetos  print("  
 
if/elif/else Seleccionando acciones  if "python" in text:
     print(text) 
Recent Activity  
for/else  Secuencia e iteración  for x in mylist:
FrontPage
    print(x) 
edited by juanpedro
while/else  Loop general  while X > Y:
    print('hello')  FrontPage
edited by juanpedro
pass  marcador de posición de vacío  while True:
    pass 
FrontPage
break finalizar loop while True: edited by juanpedro
   if exittest(): break 
FrontPage
continue continúa el loop while True:
edited by dshadou@gmail.com
   if skiptest(): continue 
def Funciones y métodos def f(a, b, c=1, *d): FrontPage
   return a+b+c+d[0]  edited by dshadou@gmail.com

yield Generador de funciones def gen(n):


FrontPage
   for i in n: yield i*2  edited by dshadou@gmail.com
global espacio de nombres (namespaces) x = 'old'
def function(): FrontPage
   global x, y; x = 'new'  edited by dshadou@gmail.com

import acceso a módulos import sys More activity...


from acceso a atributos from sys import stdin
class construcción de objetos class Subclase(Superclase):
    staticData = []
   def method(self): pass 
try/except/finally Capturar excepciones try:
        action()
except:
        print('action error') 
raise  generar excepciones  raise EndSearch (location) 

pycartagena.pbworks.com/w/page/36882895/Sentencias 1/14
4/1/2021 Programando con Python / Sentencias
assert Depuración de los controles assert X > Y, 'X demasiado pequeno'
with/as Manejadores de contexto with open('data') as myfile:
     process(myfile) 
del Eliminar referencias del data[k]
del data[i:j]
del obj.attr
del variable
 
Reglas especiales:
 
Sentencias en una linea:
a = 1; b = 2; print(a + b)
 
el punto y coma actua como separador de sentencias
 
Extensión de varias lineas:
 
mlist = [111,
         222,
         333]
 
Expresiones en varias lineas, usando parentesis:
 
X = (A + B +
     C + D)
 
Oraciones compuestas:
 
if (A == 1 and
    B == 2 and
    C == 3):
         print('spam' * 3) 
 
 
Regla de Bloque:
 
if x > y: print(x)
 
 
Asignaciones en secuencia:
 
>>> empujar = 1
>>> guino = 2
 
Asignando a tupla:
>>> A, B = empujar, guino
>>> A, B
(1, 2)
 
Desempaquetado:
>>> (a, b, c) = "ABC"
>>> a, c
('A', 'C') 
 
>>> string = 'SPAM'
>>> a, b, c, d = string
>>> a, d
('S', 'M')
 
Desempaquetado + Indices + Slices:
>>> a, b, c = string[0], string[1], string[2:]
>>> a, b, c
('S', 'P', 'AM')
 
Asignando a lista:
>>> [C, D] = [empujar, guino]

pycartagena.pbworks.com/w/page/36882895/Sentencias 2/14
4/1/2021 Programando con Python / Sentencias
>>> C, D
(1, 2)
 
Generalizada:
a, b, c, d = 'spam'
 
Multiple asignación:
spam = ham = 'almuerzo'
 
 
Asignación aumentada:
 
forma tradicional =>   X = X + Y
nueva forma aumentada = X  += Y
 
sentencias básicas de asignación aumentada:
 
Acumulación:
X += Y
 
Sustracción:
X -= Y
 
 
Reglas esenciales para nombrar variables:
 
 
Sintaxis: debe iniciar con subraya o letra + cualquier numero de letras, digitos o subrayas:
_spam, spam, Spam_1 son válidos. 1_Spam, spam$, (@#!) no lo son.
 
 
Diferencia MAYUSCULAS de minusculas: SPAM no es lo mismo que spam.
 
 
No use palabras reservadas como variables de usuario.-
Por respeto a las convenciones privadas de definición en Python, no use doble subrayado al
inicio y al final de sus variables.
 
 
Operaciones con Print:
 
Print clasicamente redirige el flujo la salida standar. La sentencia cambia de la version 2.6 a la 3.x de
Python.
 
Sentencia print (2.6):
 
Imprime forma textual del objeto a sys.stdout agregando un espacio entre los items con un fin-de-linea
al final.
print x, y 
 
Lo mismo pero no agrega el fin-de-linea al final del texto:
print x, y,
 
Envia el texto a  afile.write no a la salida standar sys.stdout.write
print >> afile, x, y
 
Formateado:
>>> print x + y
ab
 
>>> print '%s...%s' % (x, y)
a...b
 
Redirigiendo la impresión:
 
Python 3.x:
>>> print('hello world')
pycartagena.pbworks.com/w/page/36882895/Sentencias 3/14
4/1/2021 Programando con Python / Sentencias
hello world
 
Python 2.x
>>> print 'hello world'
hello world
 
Interactivo:
>>> 'hello world'
'hello world'
 
Comportamiento de print desde la perspectiva del lenguaje:
>>> import sys
>>> sys.stdout.write('hello world\n')
hello world
 
Redirección manual:
 
print X, Y
 
equivale a:
 
import sys
sys.stdout.write(str(X) + ' ' + str(Y) + '\n')
 
Tip: Reasignando la salida standar a un archivo (python 3.0)
 
>>> import sys
>>> temp = sys.stdout
>>> sys.stdout = open('log.txt', 'a')
>>> print(x, y)
>>> print('spam')
>>> sys.stdout.close()
>>> sys.stdout = temp
 
 
Sentencia If:
 
nombre = raw_input('Cual es su nombre? ')
if nombre.endswith('Wilderman'):
     print 'Hola, Sr. Wilderman'
 
La sentencia if permite realizar una execución condicional. 
 
raw_input = método para leer una entrada del teclado y almacenarlo en una variable (nombre).
endswith = Retorna True si nombre finaliza con el sufijo especificado. De lo contrario será falso.
 
Clausula else:
 
nombre = raw_input('Cual es su nombre? ')
if nombre.endswith('Wilderman'):
     print 'Hola, Sr. Wilderman'
else:
     print 'Hola Extraño!"
 
Clausula elif (abreviado de else if):
 
num = input('Ingrese un número: ')
if num > 0:
    print 'The numero es positivo'
elif num < 0:
    print 'El numero es negativo'
else:
    print 'El numero es cero'
 
 
Bloques anidados:
pycartagena.pbworks.com/w/page/36882895/Sentencias 4/14
4/1/2021 Programando con Python / Sentencias
 
name = raw_input('Cual es su 1er Apellido? ')
if name.endswith('Ceren'):
    if name.startswith('Sr.'):
        print 'Hola, Sr. Ceren'
    elif name.startswith('Sra.'):
        print 'Hola, Sra. Ceren'
    else:
        print 'Hola, Ceren'
else:
    print 'Hola, Extraño!'
 
 
Operadores de Comparación:
 
Expresion Descripcion 
x == y  x igual a y 
x<y x es menor que y
x>y x es mayor que y
x >= y  x es mayor o igual que y
x <= y x es menor o igual que y
x != y x no es igual a y
x is y x & y son el mismo objeto
x is not y x & y son objetos distintos
x in y x es un miembro del contenedor (ej. secuencia) y
x not in y x no es miembro del contenedor (secuencia) y
 
x <> y   por compatibilidad se usa pero el soportado oficialmente es x != y 
 
Tip:  Para comparar cosas tambien puedes usar la función incorporada cmp.
 
Ordenación avanzada con cmp:
 
Si x < y  cmp retornará un entero negativo
Si x > y cmp retornará un entero positivo
Si x == y entonces retornará cero.
 
>>> cmp(42, 32)
1
>>> cmp(99, 100)
-1
>>> cmp(10, 10)
0
 
Operador de Igualdad:
Si deseas saber si dos cosas son iguales, use el operador de igualdad, escrito como doble igualdad, ==
 
>>> "foo" == "foo"
True
>>> "foo" == "bar"
False
 
Recuerde: No use un solo signo de igualdad, eso es asignación.
 
 
is: El Operador identidad:
 
Trabaja similar a == pero no
 
>>> x = y = [1, 2, 3]
>>> z = [1, 2, 3]
>>> x == y
True

pycartagena.pbworks.com/w/page/36882895/Sentencias 5/14
4/1/2021 Programando con Python / Sentencias
>>> x == z
True
>>> x is y
True
>>> x is z
False
 
Por que razon x no es identico con z usando la forma is ?
Eso es por que is testea identidad, en lugar de igualdad. x y y fueron asignadas a la misma lista,
mientras que z es simplemente atada a otra lista que contiene los mismos valores en el mismo orden.
 
>>> x = [1, 2, 3]
>>> y = [2, 4]
>>> x is not y
True
>>> del x[2]
>>> y[1] = 1
>>> y
[2, 1]
>>> y.reverse()
>>> y
[1, 2]
 
 
x & y son iguales
>>> x == y
True
 
pero no identicas (del mismo objeto)
>>> x is y
False
 
Tenga en cuenta: Evite el uso de is de modo basico, valores inmutables tales como numeros y
cadenas. El resultado puede ser impredecible.
 
 
in: El operador de los miembros
Este puede ser usado en condiciones, al igual que todos los otros operadores de comparación:
 
nombre = raw_input('Cual es su nombre? ')
if 's' in nombre:
    print 'Su nombre contiene la letra "s".'
else:
    print 'Su nombre no contiene la letra "s".'
 
 
Comparando Cadenas y Secuencias:
 
Las cadenas se comparan acordando su orden alfabetico:
 
>>> "alpha" < "beta"
True
 
Si trabajas con letras mayusculas. ignora las diferencias usando upper o lower:
>>> 'FnOrD'.lower() == 'Fnord'.lower()
True
 
>>> [1, 2] < [2, 1]
True
 
Operadores Boolean
 
Escribe un programa que lea un numero y verifique si este se encuentra entre 1 y 10 (inclusive).
Puedes hacerlo como:
 
number = input('Ingrese un numero entre 1 y 10:  ')
if number <= 10:
pycartagena.pbworks.com/w/page/36882895/Sentencias 6/14
4/1/2021 Programando con Python / Sentencias
    if number >= 1:
        print 'muy bien!'
    else:
        print 'Mal!'
else:
    print 'Mal!'
 
 
Ubicar un mismo mensaje "Mal" en dos lugares es una forma torpe. Duplicacion del esfuerzo no es
bueno. Que hacer?
 
Entre un numero entre 1 y 10    5
>>> if number <= 10 and number >= 1:
...     print 'Muy bien!'
... else:
...     print 'Mal!'
...
Great!
 
and: toma dos valores verdaderos, y retorna verdadero si ambos son verdad, de lo contrario falso.
Puedes tener mas de estos operadores inlcuso or o not. 
 
if ((cash > price) or customer_has_good_credit) and not out_of_stock:
     give_goods()
 
 
 
Logica de Corto Circuito:
 
x and y:    Requiere que tanto x como y sean verdad.
si x es falso, toda la expresión retornará falso sin tener que preocuparse por y.
Actualmente, si x es falso, el retorna x, de lo contrario retorna y.
Trabaja con or tambien.
x or y:  si x es verdad, es retornado, de lo contrario retorna y.
Ejemplo:
nombre = raw_input('Ingrese su nombre por favor: ') or '<unknown>'
 
 
Afirmaciones (Assertions):
Se usan para controlar rompimientos del programa cuando un error aparece tiempo despues.
 
>>> age = 10
>>> assert 0 < age < 100
>>> age = -1
 
>>> assert 0 < age < 100
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AssertionError
 
Agregando un checkpoint dentro del assert para identificar el error, agregando un string.
 
>>> assert 0 < age < 100, 'La edad debe ser real'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AssertionError: La edad debe ser real
 
 
Ciclos/Búcles (Loops):
 
while:
>>> x = 1
>>> while x <= 100:
...     print x
...     x += 1
...

pycartagena.pbworks.com/w/page/36882895/Sentencias 7/14
4/1/2021 Programando con Python / Sentencias
 
1
2
3
4
5
6
7
8
9
10
...
100
 
Usando un loop para estar seguro que el usuario ingresa un nombre:
 
nombre = ''
while not nombre:
    nombre = raw_input('Ingrese su nombre: ')
print 'Hola: %s' % nombre
 
Tip: Que sucede si ingreso el nombre como un espacio en blanco?
Rta/ Lo deja pasar, para evitar esto hay ke tambien validar que no sea un espacio lo que haya
ingresado, usando el método de cadena isspace() o strip().
 
nombre = ''
while not nombre or nombre.isspace():
    nombre = raw_input('Ingrese su nombre: ')
print 'Hola: %s' % nombre
 
ó
 
nombre = ''
while not nombre.strip():
    nombre = raw_input('Ingrese su nombre: ')
print 'Hola: %s' % nombre
 
Ciclos for:
 
la sentencia while es muy flexible, repite un bloque de codigo en cualquier condición mientras sea
verdad.
Una de esas necesidades con for es realizar un bloque de código a partir de un conjunto de valores.
 
>>> palabras = ['Este', 'es', 'un', 'ex', 'loro']
>>> for word in palabras:
...     print word
...
Este
es
un
ex
loro
 
>>> numeros = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> for numero in numeros:
...     print numero
...
0
1
2
3
4
5
6
7
8

pycartagena.pbworks.com/w/page/36882895/Sentencias 8/14
4/1/2021 Programando con Python / Sentencias
9
 
Función range():
Si necesita iterar sobre una secuencia de numeros, range() genera una lista conteniendo una
progresión aritmética:
 
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 
>>> for numero in range(10):
...     print numero
...
0
1
2
3
4
5
6
7
8
9
 
Es posible dar un inicio al rango, o el incremento (inclusive negativo, algunas veces llamado paso ó
step)
>>> range(5,10)
[5, 6, 7, 8, 9]
 
>>> range(0, 10, 3)
[0, 3, 6, 9]
 
>>> range(-10, -100, -30)
[-10, -40, -70]
 
Tip: Existe otra función llamada xrange que trabaja como range en un loop donde range crea la
secuencia completa de una vez, xrange crea un sólo un número al tiempo. Puede ser útil iterando sobre
secuencias grandes mas eficientemente.
 
Para iterar sobre los indices de una secuencia, combinamos range() y len() como sigue:
>>> a = ['Maria', 'tiene', 'un', 'pequeno', 'cordero']
>>> for i in range(len(a)):
...     print i, a[i]
...
0 Maria
1 tiene
2 un
3 pequeno
4 cordero
 
En casos asi, sin embargo es mejor usar la función enumerate() .
Con enumerate() se recupera el indice y su valor correspondiente:
 
>>> for i,v in enumerate(a):
...     print i, v
...
0 Maria
1 tiene
2 un
3 pequeno
4 cordero
 
Iteración en diccionarios:
>>> d = {'x':1, 'y':2, 'z':3}
>>> for key in d:
...     print key, 'corresponde a', d[key]
...

pycartagena.pbworks.com/w/page/36882895/Sentencias 9/14
4/1/2021 Programando con Python / Sentencias
y corresponde a 2
x corresponde a 1
z corresponde a 3
 
Ahora usando el método items():
>>> for key, value in d.items():
...     print key, 'corresponde a', value
...
y corresponde a 2
x corresponde a 1
z corresponde a 3
 
Tip: Si quieres hacerlo más eficiente, use los métodos iterkeys, itervalues o iteritems (no retornan listas,
pero si iteratores)
 
Algunas utilidades para iteraciones:
 
Iteración paralela:
>>> nombres = ['ana', 'beth', 'jorge', 'daniel']
>>> edades = [12, 45, 32, 40]
>>> for i in range(len(nombres)):
...     print nombres[i], 'tiene', edades[i], 'anos de edad'
...
ana tiene 12 anos de edad
beth tiene 45 anos de edad
jorge tiene 32 anos de edad
daniel tiene 40 anos de edad
 
Otra herramienta muy útil para este tipo de iteraciones es con el uso de la función zip() que me genera
una secuencia de tuplas:
>>> zip(nombres, edades)
[('ana', 12), ('beth', 45), ('jorge', 32), ('daniel', 40)]
 
Bien, ahora desempaquetar las tuplas en el loop:
>>> for nombre, edad in zip(nombres, edades):
...     print nombre, 'tiene', edad, 'anos de edad'
...
ana tiene 12 anos de edad
beth tiene 45 anos de edad
jorge tiene 32 anos de edad
daniel tiene 40 anos de edad
 
Si las secuencias son de diferente longitud, zip se detiene cuando la secuencia mas corta se acaba.
>>> zip(range(5), xrange(100))
[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4)]
 
Iteración numerada:
>>> strings
['Hola', 'mundo', 'en', 'lenguaje', 'Python', 'ultima', 'version']
 
>>> for string in strings:
...     if 'ion' in string:
...             index = strings.index(string)
...             strings[index] = '[censored]'
...
>>> strings
['Hola', 'mundo', 'en', 'lenguaje', 'Python', 'ultima', '[censored]']
 
Esto puede trabajar bien, pero no parece necesario buscar la cadena dada antes de reemplazarla
arrojando un indice incorrecto. Una mejor versión:
 
>>> index = 0
>>> for string in strings:
...     if 'ion' in string:
...             strings[index] = '[censored]'
...     index += 1

pycartagena.pbworks.com/w/page/36882895/Sentencias 10/14
4/1/2021 Programando con Python / Sentencias
...
>>> strings
['Hola', 'mundo', 'en', 'lenguaje', 'Python', 'ultima', '[censored]']
 
Otra solución: usando la función incorporada enumerate:
>>> strings = ['Hola', 'mundo', 'en', 'lenguaje', 'Python', 'ultima',
'version']
>>> for index, string in enumerate(strings):
...     if 'ion' in string:
...             strings[index] = '[censored]'
...
>>> strings
['Hola', 'mundo', 'en', 'lenguaje', 'Python', 'ultima', '[censored]']
 
Iteración inversa y/o ordenada:
Son muy similares a sus equivalentes métodos de lista, reversed & sorted, sólo que en vez de alterar el
objeto solo retorna su valor.
 
>>> sorted([4, 3, 6, 8, 3])
[3, 3, 4, 6, 8]
 
>>> sorted('Hello, world!')
[' ', '!', ',', 'H', 'd', 'e', 'l', 'l', 'l', 'o', 'o', 'r', 'w']
 
>>> list(reversed('Hello, world!'))
['!', 'd', 'l', 'r', 'o', 'w', ' ', ',', 'o', 'l', 'l', 'e', 'H']
 
 ''.join(reversed('Hello, world!'))
'!dlrow ,olleH'
 
 
Rompiendo el ciclo:
 
break:
Para terminar (romper) un ciclo (loop), use break. Ejemplo: Encontrar el entero cuadrado mas grande
por debajo de 100. Iterando en descenso desde 100 hasta 0:
>>> for n in range(99, 0, -1):
...     root = sqrt(n)
...     if root == int(root):
...             print n
...             break
...
81
 
Al ejecutarlo, notará que imprimió el 81, y parará el ciclo. -1 es el paso, pero puedo usar numeros
mayores de 1 para generar "saltos".
>>> range(0, 10, 2)
[0, 2, 4, 6, 8]
 
continue:
A menudo es menos usado que break.  Finaliza la iteración actual y salta para iniciar la proxima.
Basicamente quiere finalizar el resto ke falta pero no el ciclo.
 
for x in seq:
     if condicion1: continue
     if condicion2: continue
     if condicion3: continue
 
     haga_algo()
     do_lo_contrario_haga()
     do_haga_otras_cosas()
     etc()
 
ó usando solo una sentencia if:
 
El idioma while True/break:

pycartagena.pbworks.com/w/page/36882895/Sentencias 11/14
4/1/2021 Programando con Python / Sentencias
 
>>> word = 'dummy'
>>> while word:
...     word = raw_input('Ingrese una palabra: ')
...     print 'La palabra fue ' + word
...
Ingrese una palabra: Hey
La palabra fue Hey
Ingrese una palabra: Wil
La palabra fue Wil
Ingrese una palabra:
 
while True/break:
>>> while True:
...     word = raw_input('Ingrese una palabra: ')
...     if not word: break
...     #haga algo con la palabra:
...     print 'La palabra fue ' + word
...
Ingrese una palabra: Hey
La palabra fue Hey
Ingrese una palabra:
>>>
 
(al dar enter, rompe el ciclo)
 
clausula else en loops:
 
Si no se invoca nunca un break en un loop entonces toma la opción de else en la estructura:
 
>>> from math import sqrt
>>> for n in range(99, 81, -1):
...     root = sqrt(n)
...     if root == int(root):
...             print n
...             break
... else:
...     print "No lo encontre!"
...
No lo encontre!
 
Comprensión de Lista:
Es una forma de hacer listas a partir de otras listas (similar a comprensión de sets), es un for pero en
una simple linea:
 
>>> [x*x for x in range(10)]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
 
 
pass:
Cuando desees colocar algo sin que pase nada se usa pass y asi nada sucederá!:
 
>>> nombre = 'Steve Jobs:'
 
>>> if nombre == 'Wilderman Ceren':
...     print "Bienvenido!"
... elif nombre == 'Linus Torvalds':
...     # No finalizado todavia...
... elif nombre == 'Steve Jobs':
  File "<stdin>", line 5
    elif nombre == 'Steve Jobs': 
IndentationError: expected an indented block
 
 
2da Version, usando pass:
 

pycartagena.pbworks.com/w/page/36882895/Sentencias 12/14
4/1/2021 Programando con Python / Sentencias
>>> nombre = 'Steve Jobs'
>>> if nombre == 'Wilderman Ceren':
...     print "Bienvenido!"
... elif nombre == 'Linus Torvalds':
...     # No finalizado aun...
...     pass
... elif nombre == 'Steve Jobs':
...     print 'Acceso Negado'
...
Acceso Negado
 
Opcional: En vez de usar comentario, use mejor una cadena, por ejemplo tipo documentación.
 
 
del:
Invoca al Recolector de Basura para limpiar los objetos de la memoria. Elimina las referencias a
secuencias y elementos de dicionario
 
x = 1
del x
>>> x
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'x' is not defined
 
 
Ejecutando y evaluando cadenas con exec y eval:
 
consiste en ejecutar codigo python guardados en una cadena. Esto implica un gran hueco de
grandes dimensiones. Si ejecuta una cadena donde partes del contenido han sido suplementados por
un usuario. Puedes o no tener control sobre ese codigo que esta ejecutando.
 
exec:
>>> exec "print 'Hello, world!'"
Hello, world!
 
>>> from math import sqrt
>>> exec "sqrt = 1"
>>> sqrt(4)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable
 
¿Que sucedió con ese error?
 
 
Al utilizar la función sqrt y reasignandola como entero dentro de la cadena asignada a la
instrucción exec , me generó un error de tipo debido a que debido a que estoy en el mismo
namespace o scope global, Python no permitiría usar el método original sino el tipo int al cual fue
asignado previamente.
 
2da Revisión:
Asignando un namespace como diccionario, soluciona el problema:
 
>>> from math import sqrt
>>> scope = {}
>>> exec 'sqrt = 1' in scope
>>> sqrt(4)
2.0
>>> scope['sqrt']
1
 
visualizando el contenido de scope:
 
>>> len(scope)
2

pycartagena.pbworks.com/w/page/36882895/Sentencias 13/14
4/1/2021 Programando con Python / Sentencias
>>> scope.keys()
['__builtins__', 'sqrt']
 
 
eval: (evaluate)
Similar a exec pero eval me evalúa una expresion Python (escrita dentro de una cadena) retornando el
valor. Ejemplo:
 
>>> eval(raw_input("Ingrese una expresion aritmetica: "))
Ingrese una expresion aritmetica: 6 + 18 * 2
42
 
Suministrando un namespace con eval:
 
>>> scope = {}
>>> scope['x'] = 2
>>> scope['y'] = 3
>>> eval('x * y', scope)
6
 
Un scope desde una llamada exec o eval puede ser usada de nuevo en otra:
>>> scope = {}
>>> exec 'x = 2' in scope
>>> eval('x*x', scope)
4
 
 
 
 

Comments (0)

You don't have permission to comment on this page.

Printable version

PBworks / Help About this workspace


Terms of use / Privacy policy / GDPR Contact the owner / RSS feed / This workspace is public

pycartagena.pbworks.com/w/page/36882895/Sentencias 14/14

También podría gustarte