Download Introducción a Python - Instituto Tecnológico de Costa Rica

Document related concepts
no text concepts found
Transcript
Introducción a Python (3.x)
Introducción a la programación
I semestre, 2017
1
Lenguaje de Programación:
Python
Python: lenguaje de alto nivel
→ Muy utilizado para aprender a
programar.
Breve Historia:
●
●
1990. En Holanda, Guido van
Rossum crea un lenguaje de
programación.
2001. Se crea la Python Software
Foundation (PSF) para promover
la protección de la libertad y su
avance como lenguaje de
programación.
CC BY-SA Doc Searls @Wikipedia
Características
Existen muchas implementaciones (Cpython, Jython,
PyPy)
Es Multiplataforma: *NIX, MacOs, Symbian (Nokia),
Pocket PC, iPod, Palm, Windows, Android...
Características
Multiparadigma: Orientado a Objetos, Imperativo,
Funcional.
●
En Python todo es un objeto (orientación a objetos)
Este concepto se trabajará más adelante en el
curso,
Pero es importante ser consciente que todas las
representaciones de elementos usadas en el
lenguaje son objetos.
Características
Muchas bibliotecas disponibles para ser usadas.
●
Programación con interfaces gráficas, aplicaciones
cliente-servidor, visores de html, bases de datos...
●
Es mayor la cantidad de recursos reutilizables en la
versión 2 que en la 3.
Características
Es un lenguaje de scripting de manera natural
(transferencia de datos entre aplicaciones y el sistema
operativo)
Muchos ambientes de programación y ejecución
●
IDLE ( Integrated DeveLopment Environment), …
●
Geany ( Editor genérico )
●
Para interfaces gráficas: PyGame, Tkinter, Qt, ...
●
Interprete de comandos (consola).
Ejecución de Expresiones
Se pueden ejecutar en el shell, donde si están correctas
devuelven un valor o resultado de lo contrario un
mensaje de error.
●
Terminal: $python3
●
Idle: $idle3
Ejecución de Expresiones
Error de Sintaxis
●
expresión mal formada
●
Identación inesperada
Error Semántico
no está definida la división por cero
Identificadores
Identificadores: usados para variable o nombres de
función
●
●
Puede tener tantos caracteres como desee mientras
sean letras, números o “guión bajo” [ _ ]
Su “nombre”/valor no puede iniciar con un número
Identificadores
●
Es “Case sensitive” (sensible a mayúsculas y
minúsculas)
●
Aguacate
●
aguAcate
●
AGUACATE
Buena Práctica: usar identificadores significativos.
Facilita la legibilidad y
mantenimiento del software escrito.
Identificadores
Palabras reservadas (Keywords)
No pueden ser utilizadas como
identificadores ordinarios
Variables
Representaciones simbólicas de los datos del
programa
Sintaxis de la asignación de valores:
variable = expresión
Tipos de Datos
Enteros
●
Numéricos
●
Secuencias
–
Conjuntos
–
●
●
Diccionarios
●
Enteros (int)
Boolean (bool)
True = 1 y False = 0
●
Reales (float)
●
Complejos (complex)
Tipos de Datos
●
Numéricos
●
Secuencias
●
Conjuntos
●
Diccionarios
Conjuntos de datos
indexados, comienzan en
cero y van hasta n-1, donde
n es el largo de la secuencia.
●
Mutables:
●
●
Listas (list), Arreglos
(array), Arreglos de
Bytes (bytearray)
Inmutables: (no se
modifican)
●
String (str), tupla (tuple),
Bytes (bytes)
Tipos de Datos
●
Nativos:
●
Numéricos
●
Secuencias
●
Conjuntos
●
Diccionarios
●
Una manera de manejar
estructuras de datos
índice-valor (key-value).
Expresiones y Operadores
Aritméticos
Pueden contener variables, literales, constantes y
operadores. Se puede evaluar y retornar algún
resultado. Las aritméticas son un subtipo en las
cuales solo se opera con números.
Operación
Descripción
Ejemplo
a + b
Suma
4+6
a – b
Resta
10 - 3
a * b
Producto
3.64 * 6
División
240 / 10 / 2
a // b
División entera
3 // 2 # =1
a % b
Residuo de división entera
7%3=1
-a
a negativo
-7
+a
a positivo
+10
a ** b
Potencia
2 ** 4 = 16
a / b
División Entera (con negativos)
Python:
●
a // b = c (con a o b negativo)
En la matemática: -3 / 2 = -1,5, en python: -3 // 2 = -2
El resultado de la división entera según Python es -2 pues
es el número (entero) menor más cercano al resultado.
(Ver punto rojo)
●
●
En la matemática: 7 / 3 = 2,333..., en python: 7 // 3 = 2
(ver punto naranja)
En la matemática: 7 / -3 = -2,333..., en python: 7 // -3 =
-3 (ver punto verde)
mayores…
5
4
3
2
1
0
-1
-2
-3
-4
… menores
Precedencia
Las operaciones de mayor precedencia se evalúan primero.
Si uno hay algún operador de mayor precedencia se evalúan
de izquierda a derecha.
El paréntesis funciona para establecer precedencia
forzada
Expresiones entre Paréntesis
** (potencia)
Ejercicio: (resuelva)
●
>>> 1 – 2 + 3
●
>>> 2 + 4 * 3
●
>>> (2 + 4 ) * 3
●
>>> 5 + 10 * 0 + 10 + 12 * 0 + 7
-x + x (negativo, positivo)
* / // % (multiplicación, división, residuo)
+ - (suma, resta)
Conversión Explicita de Tipos
●
●
Normalmente el tipo de las expresiones aritméticas está
dado por los tipos de sus operadores.
Para obtener un resultado en un tipo particular se pueden
utilizar constructores (P.O.O.): int(), float(), complex()
4 / 3 da como
resultado un número
real: 1.33333
Si yo lo quiero como
un entero es
necesario hacer una
conversión explícita
de tipo.
Conversión Explicita de Tipos
Otras consideraciones:
●
Truncamiento:
●
Números flotantes:
●
Not a number = 'nan'
●
Infinity = 'inf'
Expresiones Lógicas
●
Operadores para formas expresiones de lógica booleana
Operación
a or b
Si a es falso, retorna b, sino retorna a
a and b
Si a es falso, retorna a, sino retorna b
not a
●
Descripción
Si a es falso, retorna True, sino retorna False
Valores Falsos:
●
None (NoneType)
●
False (bool)
●
Cero de tipos numéricos (int, float, …)
●
Secuencias vacías: ' ', (), [] (str, tuple, list)
Tablas de Verdad (Lógica
Booleana)
A
B
A AND B
A OR B
NOT A
True
True
True
True
False
True
False
False
True
False
False
True
False
True
True
False
False
False
False
True
Operadores Relacionales
Operación
< y <=
> y >=
==
!=
is – is not
in – not in
Descripción
Ejemplo
Menor que y Menor o igual que >>>
>>>
Mayor que y Mayor o igual que >>>
>>>
>>>
Igual que
>>>
>>>
>>>
>>>
Diferente de
>>>
Identidad de objeto y su
negación
(son el mismo objeto?)
Pertenencia y su negación.
4 < 10
True
7 <= 7
True
13.0 == 13
True
7 == '7'
???
'jaime' != 'Jaime'
True
>>> x = 'j'
>>> x is y
>>> False
>>> x = jaime'
>>> 'a' in x
>>>True
| >>> y = 'J'
Asignación con Operador
Operaciones aritméticas simples (binarias: dos operados)
combinadas con una asignación de una variables.
Variable operadorBinario= valor
variable += valor
Variable -=valor
Estas dos asignaciones
son equivalentes
x = x + 1
X += 1
Elementos predefinidos:
Funciones
Código que realiza una tarea de acuerdo a los argumentos brindados.
da una salida a partir de ciertas entradas
Disponibles: http://docs.python.org/3/library/functions.html
file:///usr/share/doc/python3-doc/html/library/functions.html (python3-doc **)
Elementos predefinidos:
Funciones
Sintáxis
>>> nombre_función (arg0, arg1, …, argN )
Respuesta
Donde:
●
Nombre_función: corresponde con un identificador válido
●
Respuesta es la salida que se espera para la función.
Función (método)
Retorna
Ejemplo
abs(arg0)
Valor absoluto de arg0
>>>abs(-8)
8
divmod( a, b)
El par ( a // b, a % b)
>>> divmod(7,3)
(2, 1)
pow( a, b )
a elevado a la potencia b
>>> pow(2, 3)
8
round(a, [, n])
A redondeado n digitos decimales, si n
se omite se asume como cero. Aplica
para float o int.
>>> round(14.499,1)
14,5
Integrar bibliotecas
Librería: conjunto de códigos con funciones y datos, que pueden ser utilizados en
programas independientes. Se deben importar para ser utilizadas.
5 ejemplos para: obtener 1.4142... el resultado de √2 (raíz cuadrada de 2):
>>> modulo_mate = __import__('math')
>>> modulo_mate.sqrt(2)
>>> from math import sqrt
>>> import math
>>> sqrt(2)
>>> math.sqrt(2)
>>> from math import *
>>> import math as m
>>> sqrt(2)
>>> m.sqrt(2)
>>> from math import sqrt as raiz
>>> raiz(2)
>>> 1.4142135623730951
Ayuda
>>> help()
Welcome to Python 3.2!
This is the online help utility.
If this is your first time using Python, you should definitely check out
the tutorial on the Internet at http://docs.python.org/3.2/tutorial/.
Enter the name of any module, keyword, or topic to get help on writing
Python programs and using Python modules.
To quit this help utility and
return to the interpreter, just type "quit".
To get a list of available modules, keywords, or topics, type "modules",
"keywords", or "topics".
Each module also comes with a one-line summary
of what it does; to list the modules whose summaries contain a given word
such as "spam", type "modules spam".
Zen de Python
>>> import this
→ El zen de python:
1. Bello es mejor que feo.
2. Explícito es mejor que implícito.
3. Simple es mejor que complejo.
4. Complejo es mejor que complicado.
Otros huevos de pascua...
$ apt-get moo
5. Plano es mejor que anidado.
6. Ralo es mejor que denso.
7. La legibilidad cuenta.
8. Los casos especiales no son tan especiales como para quebrantar las reglas.
(__)
(oo)
/------\/
/|
||
* /\---/\
~~ ~~
...."Have you mooed today?"...
Aunque lo práctico gana a la pureza.
9. Los errores nunca deberían dejarse pasar silenciosamente. A menos que
hayan sido silenciados explícitamente.
10. Frente a la ambigüedad, rechaza la tentación de adivinar.
11. Debería haber una -y preferiblemente sólo una- manera obvia de hacerlo.
Aunque esa manera puede no ser obvia al principio a menos que usted sea
Holandés.
12. Ahora es mejor que nunca. Aunque nunca es a veces mejor que ya.
13. Si la implementación es difícil de explicar, es una mala idea.
14. Si la implementación es fácil de explicar, puede que sea una buena idea.
15. Los espacios de nombres (namespaces) son una gran idea ¡Hagamos más
de esas cosas!
Referencias y Lecturas
Complementarias
●
●
●
●
●
Material suministrado por el profesor Jeff Schmidt, Instituto Tecnológico de Costa
Rica. I semestre 2011.
Identificadores y palabras reservadas:
http://docs.python.org/release/3.1.3/reference/lexical_analysis.html#identifiers
Objetos, valores y tipos:
http://docs.python.org/release/3.1.3/reference/datamodel.html#objects-values-andtypes
Precedencia de operadores:
http://docs.python.org/release/3.1.3/reference/expressions.html#summary
En general: http://docs.python.org/3/
Las presentaciones para el curso IC-1800:
"Introducción a la Programación" por Ing. En
Computación Alajuela se distribuyen bajo una
Licencia Creative Commons Atribución-Compartir
Igual 3.0 Costa Rica.
31
http://creativecommons.org/licenses/by-sa/3.0/cr/
http://creativecommons.org/licenses/by-sa/3.0/cr/
*La licencia de la presentación no cubre las imágenes utilizadas*
Introducción a Python (3.x)
Introducción a la programación
I semestre, 2017
1
Lenguaje de Programación:
Python
Python: lenguaje de alto nivel
→ Muy utilizado para aprender a
programar.
Breve Historia:
●
●
1990. En Holanda, Guido van
Rossum crea un lenguaje de
programación.
2001. Se crea la Python Software
Foundation (PSF) para promover
la protección de la libertad y su
avance como lenguaje de
programación.
CC BY-SA Doc Searls @Wikipedia
Características
Existen muchas implementaciones (Cpython, Jython,
PyPy)
Es Multiplataforma: *NIX, MacOs, Symbian (Nokia),
Pocket PC, iPod, Palm, Windows, Android...
Python: está escrito en C
Jython: está escrito en Java
Pypy: está escrito en Python
Características
Multiparadigma: Orientado a Objetos, Imperativo,
Funcional.
●
En Python todo es un objeto (orientación a objetos)
Este concepto se trabajará más adelante en el
curso,
Pero es importante ser consciente que todas las
representaciones de elementos usadas en el
lenguaje son objetos.
Python: está escrito en C
Jython: está escrito en Java
Pypy: está escrito en Python
Características
Muchas bibliotecas disponibles para ser usadas.
●
Programación con interfaces gráficas, aplicaciones
cliente-servidor, visores de html, bases de datos...
●
Es mayor la cantidad de recursos reutilizables en la
versión 2 que en la 3.
Sitio web del ninja-ide: http://ninja-ide.org/
Características
Es un lenguaje de scripting de manera natural
(transferencia de datos entre aplicaciones y el sistema
operativo)
Muchos ambientes de programación y ejecución
●
IDLE ( Integrated DeveLopment Environment), …
●
Geany ( Editor genérico )
●
Para interfaces gráficas: PyGame, Tkinter, Qt, ...
●
Interprete de comandos (consola).
Sitio web del ninja-ide: http://ninja-ide.org/
Ejecución de Expresiones
Se pueden ejecutar en el shell, donde si están correctas
devuelven un valor o resultado de lo contrario un
mensaje de error.
●
Terminal: $python3
●
Idle: $idle3
Python entendido como un programa de software que
ejecuta expresiones válidas para ese mismo lenguaje de
programación
Shell:
$python3
#idle3
También se pueden ejecutar directamente invocando el
programa python3 con un archivo de python como
parámetro.
$python3 archivo.py
Ejecución de Expresiones
Error de Sintaxis
●
expresión mal formada
●
Identación inesperada
Error Semántico
no está definida la división por cero
Python entendido como un programa de software que
ejecuta expresiones válidas para ese mismo lenguaje de
programación
Shell:
$python3
#idle3
También se pueden ejecutar directamente invocando el
programa python3 con un archivo de python como
parámetro.
$python3 archivo.py
Identificadores
Identificadores: usados para variable o nombres de
función
●
●
Puede tener tantos caracteres como desee mientras
sean letras, números o “guión bajo” [ _ ]
Su “nombre”/valor no puede iniciar con un número
Hacer mucho énfasis. (por ejemplo en el ejercicio del
cálculo del área del círculo, tenemos estos
identificadores:
* radio es una variable
* pi es una contante
* area_circulo es una función.
Ejemplos:
>>> aguacate = "viva la liga"
>>> aguacate
'viva la liga'
>>> aGuacate= "viva el carmen"
>>> aGuacate
'viva el carmen'
>>> aguacate == aGuacate
False
>>> aguacate == aguacate
Identificadores
●
Es “Case sensitive” (sensible a mayúsculas y
minúsculas)
●
Aguacate
●
aguAcate
●
AGUACATE
Buena Práctica: usar identificadores significativos.
Facilita la legibilidad y
mantenimiento del software escrito.
Hacer mucho énfasis. (por ejemplo en el ejercicio del
cálculo del área del círculo, tenemos estos
identificadores:
* radio es una variable
* pi es una contante
* area_circulo es una función.
Ejemplos:
>>> aguacate = "viva la liga"
>>> aguacate
'viva la liga'
>>> aGuacate= "viva el carmen"
>>> aGuacate
'viva el carmen'
>>> aguacate == aGuacate
False
>>> aguacate == aguacate
Identificadores
Palabras reservadas (Keywords)
No pueden ser utilizadas como
identificadores ordinarios
Las iremos conociendo poco a poco.
Variables
Representaciones simbólicas de los datos del
programa
Sintaxis de la asignación de valores:
variable = expresión
Reforzar la diferencia entre datos e
instrucciones/código
Implementación: una variable es un espacio de
memoria, que se utiliza para almacenar un valor
Semánticamente: el valor se va cambiando y se borra
el valor anterior.
>>> nombre = “Jaime Gutiérrez”
>>> type(nombre)
<type 'str'>
>>> numeros = [2, 4, 6, 8, 10]
>>> numeros
[2, 4, 6, 8, 10]
En cualquiera de estos ejemplos, el identificador
queda definido dentro del ambiente de ejecución y
Tipos de Datos
Enteros
●
Numéricos
●
Secuencias
–
●
Conjuntos
–
●
Diccionarios
●
Enteros (int)
Boolean (bool)
True = 1 y False = 0
●
Reales (float)
●
Complejos (complex)
Los números enteros funcionan para representar los
números naturales y los enteros.
Los flotantes para los reales
Tipos de Datos
●
Numéricos
●
Secuencias
●
Conjuntos
●
Diccionarios
Conjuntos de datos
indexados, comienzan en
cero y van hasta n-1, donde
n es el largo de la secuencia.
●
Mutables:
●
●
Listas (list), Arreglos
(array), Arreglos de
Bytes (bytearray)
Inmutables: (no se
modifican)
●
String (str), tupla (tuple),
Bytes (bytes)
Tipos de Datos
●
Nativos:
●
Numéricos
●
Secuencias
●
Conjuntos
●
Diccionarios
●
Una manera de manejar
estructuras de datos
índice-valor (key-value).
Expresiones y Operadores
Aritméticos
Pueden contener variables, literales, constantes y
operadores. Se puede evaluar y retornar algún
resultado. Las aritméticas son un subtipo en las
cuales solo se opera con números.
Operación
Descripción
Ejemplo
a + b
Suma
4+6
a – b
Resta
10 - 3
a * b
Producto
3.64 * 6
División
240 / 10 / 2
a // b
División entera
3 // 2 # =1
a % b
Residuo de división entera
7%3=1
-a
a negativo
-7
+a
a positivo
+10
a ** b
Potencia
2 ** 4 = 16
a / b
División Entera (con negativos)
Python:
●
a // b = c (con a o b negativo)
En la matemática: -3 / 2 = -1,5, en python: -3 // 2 = -2
El resultado de la división entera según Python es -2 pues
es el número (entero) menor más cercano al resultado.
(Ver punto rojo)
●
●
En la matemática: 7 / 3 = 2,333..., en python: 7 // 3 = 2
(ver punto naranja)
En la matemática: 7 / -3 = -2,333..., en python: 7 // -3 =
-3 (ver punto verde)
mayores…
5
4
3
2
1
0
-1
-2
-3
-4
… menores
El punto rojo corresponde con el valor -1.5 y se puede
ver que los dos enteros más cercanos son -1 o -2,
siendo el menor -2.
El punto naranja corresponde con el valor 2.33 y se
puede ver que los dos enteros más cercanos son 3 y
2, siendo el menor 2.
El punto verde corresponde con el valor -2.33 y se
puede ver que los dos enteros más cercanos son -2
o -3, siendo el menor -3.
Precedencia
Las operaciones de mayor precedencia se evalúan primero.
Si uno hay algún operador de mayor precedencia se evalúan
de izquierda a derecha.
El paréntesis funciona para establecer precedencia
forzada
Expresiones entre Paréntesis
** (potencia)
Ejercicio: (resuelva)
●
>>> 1 – 2 + 3
●
>>> 2 + 4 * 3
●
>>> (2 + 4 ) * 3
●
>>> 5 + 10 * 0 + 10 + 12 * 0 + 7
-x + x (negativo, positivo)
* / // % (multiplicación, división, residuo)
+ - (suma, resta)
>>> 1 – 2 + 3
-1 + 3
2
→ tienen la misma precedencia, se evalúan de
izquierda a derecha.
>>> 2 + 4 * 3
2 + 12
14
→ la precedencia la tiene el operador de
multiplicación *, sobre la suma y resta.
●
>>> (2 + 4 ) * 3
6 *3
18
→ el paréntesis obliga a evaluar distinto.
●
Conversión Explicita de Tipos
●
●
Normalmente el tipo de las expresiones aritméticas está
dado por los tipos de sus operadores.
Para obtener un resultado en un tipo particular se pueden
utilizar constructores (P.O.O.): int(), float(), complex()
4 / 3 da como
resultado un número
real: 1.33333
Si yo lo quiero como
un entero es
necesario hacer una
conversión explícita
de tipo.
Conversión Explicita de Tipos
Otras consideraciones:
●
Truncamiento:
●
Números flotantes:
●
Not a number = 'nan'
●
Infinity = 'inf'
Los operadores: num1 y num2 son de tipo float (ojo
con los decimales)
Pero si yo quiero el resultado “truncado” lo puedo
pasar a int con la conversión explícita de tipos
(casting), también se le llama promoción de tipos.
Expresiones Lógicas
●
Operadores para formas expresiones de lógica booleana
Operación
a or b
Si a es falso, retorna b, sino retorna a
a and b
Si a es falso, retorna a, sino retorna b
not a
●
Descripción
Si a es falso, retorna True, sino retorna False
Valores Falsos:
●
None (NoneType)
●
False (bool)
●
Cero de tipos numéricos (int, float, …)
●
Secuencias vacías: ' ', (), [] (str, tuple, list)
Tablas de Verdad (Lógica
Booleana)
A
B
A AND B
A OR B
NOT A
True
True
True
True
False
True
False
False
True
False
False
True
False
True
True
False
False
False
False
True
Estas operaciones retornan uno de los operandos.
Operadores Relacionales
Operación
< y <=
> y >=
==
!=
is – is not
in – not in
Descripción
Ejemplo
Menor que y Menor o igual que >>>
>>>
Mayor que y Mayor o igual que >>>
>>>
>>>
Igual que
>>>
>>>
>>>
>>>
Diferente de
>>>
Identidad de objeto y su
negación
(son el mismo objeto?)
Pertenencia y su negación.
4 < 10
True
7 <= 7
True
13.0 == 13
True
7 == '7'
???
'jaime' != 'Jaime'
True
>>> x = 'j'
>>> x is y
>>> False
>>> x = jaime'
>>> 'a' in x
>>>True
| >>> y = 'J'
Asignación con Operador
Operaciones aritméticas simples (binarias: dos operados)
combinadas con una asignación de una variables.
Variable operadorBinario= valor
variable += valor
Variable -=valor
Estas dos asignaciones
son equivalentes
x = x + 1
X += 1
La diferencia es sintáctica, pues semánticamente
hacen lo mismo.
Se recomienda mejor utilizar la forma explícita porque
es más legible.
Elementos predefinidos:
Funciones
Código que realiza una tarea de acuerdo a los argumentos brindados.
da una salida a partir de ciertas entradas
Disponibles: http://docs.python.org/3/library/functions.html
file:///usr/share/doc/python3-doc/html/library/functions.html (python3-doc **)
Los dos elementos predefinidos principales son:
funciones y métodos...
Sugerencia instalar el paquete: python3-doc para tener
la documentación de python en la computadora
En la siguiente diapo: abs, divmod, pow, round... .help
Mostrar detalles de sintaxis:
* argumentos opcionales (denotados con [])
* argumentos obligatorios
Revisar acá (detenerme en la sitáxis):
* print
>>> print("hola")
hola
Elementos predefinidos:
Funciones
Sintáxis
>>> nombre_función (arg0, arg1, …, argN )
Respuesta
Donde:
●
Nombre_función: corresponde con un identificador válido
●
Respuesta es la salida que se espera para la función.
Función (método)
Retorna
Ejemplo
abs(arg0)
Valor absoluto de arg0
>>>abs(-8)
8
divmod( a, b)
El par ( a // b, a % b)
>>> divmod(7,3)
(2, 1)
pow( a, b )
a elevado a la potencia b
>>> pow(2, 3)
8
round(a, [, n])
A redondeado n digitos decimales, si n
se omite se asume como cero. Aplica
para float o int.
>>> round(14.499,1)
14,5
Funciones: el concepto de función en los lenguajes de
programación se asocia con código que realiza una
tarea específica de acuerdo a los argumentos que se
le brinden
Buscar funciones en el ejemplo anterior.
Integrar bibliotecas
Librería: conjunto de códigos con funciones y datos, que pueden ser utilizados en
programas independientes. Se deben importar para ser utilizadas.
5 ejemplos para: obtener 1.4142... el resultado de √2 (raíz cuadrada de 2):
>>> modulo_mate = __import__('math')
>>> modulo_mate.sqrt(2)
>>> from math import sqrt
>>> import math
>>> sqrt(2)
>>> math.sqrt(2)
>>> from math import *
>>> import math as m
>>> sqrt(2)
>>> m.sqrt(2)
>>> from math import sqrt as raiz
>>> 1.4142135623730951
>>> raiz(2)
Esta forma:
>>> modulo_mate = __import__('math')
>>> modulo_mate.sqrt(2)
Va a ser útil para las pruebas unitarias, si por ejemplo
el nombre del archivo es el número de carné.
Ayuda
>>> help()
Welcome to Python 3.2!
This is the online help utility.
If this is your first time using Python, you should definitely check out
the tutorial on the Internet at http://docs.python.org/3.2/tutorial/.
Enter the name of any module, keyword, or topic to get help on writing
Python programs and using Python modules.
To quit this help utility and
return to the interpreter, just type "quit".
To get a list of available modules, keywords, or topics, type "modules",
"keywords", or "topics".
Each module also comes with a one-line summary
of what it does; to list the modules whose summaries contain a given word
such as "spam", type "modules spam".
>>> help(abs)
>>>
Zen de Python
>>> import this
→ El zen de python:
1. Bello es mejor que feo.
2. Explícito es mejor que implícito.
3. Simple es mejor que complejo.
4. Complejo es mejor que complicado.
Otros huevos de pascua...
$ apt-get moo
5. Plano es mejor que anidado.
6. Ralo es mejor que denso.
7. La legibilidad cuenta.
8. Los casos especiales no son tan especiales como para quebrantar las reglas.
(__)
(oo)
/------\/
/|
||
* /\---/\
~~ ~~
...."Have you mooed today?"...
Aunque lo práctico gana a la pureza.
9. Los errores nunca deberían dejarse pasar silenciosamente. A menos que
hayan sido silenciados explícitamente.
10. Frente a la ambigüedad, rechaza la tentación de adivinar.
11. Debería haber una -y preferiblemente sólo una- manera obvia de hacerlo.
Aunque esa manera puede no ser obvia al principio a menos que usted sea
Holandés.
12. Ahora es mejor que nunca. Aunque nunca es a veces mejor que ya.
13. Si la implementación es difícil de explicar, es una mala idea.
14. Si la implementación es fácil de explicar, puede que sea una buena idea.
15. Los espacios de nombres (namespaces) son una gran idea ¡Hagamos más
de esas cosas!
james@jupiter:~$ apt-get moo
(__)
(oo)
/------\/
/ | ||
* /\---/\
~~ ~~
...."Have you mooed today?"...
Referencias y Lecturas
Complementarias
●
●
●
●
●
Material suministrado por el profesor Jeff Schmidt, Instituto Tecnológico de Costa
Rica. I semestre 2011.
Identificadores y palabras reservadas:
http://docs.python.org/release/3.1.3/reference/lexical_analysis.html#identifiers
Objetos, valores y tipos:
http://docs.python.org/release/3.1.3/reference/datamodel.html#objects-values-andtypes
Precedencia de operadores:
http://docs.python.org/release/3.1.3/reference/expressions.html#summary
En general: http://docs.python.org/3/
Las presentaciones para el curso IC-1800:
"Introducción a la Programación" por Ing. En
Computación Alajuela se distribuyen bajo una
Licencia Creative Commons Atribución-Compartir
Igual 3.0 Costa Rica.
31
http://creativecommons.org/licenses/by-sa/3.0/cr/
http://creativecommons.org/licenses/by-sa/3.0/cr/
*La licencia de la presentación no cubre las imágenes utilizadas*