0% encontró este documento útil (0 votos)
60 vistas37 páginas

Python Intro

El documento proporciona información sobre herramientas para descargar e instalar Python, la estructura básica del lenguaje como su tipado dinámico y la identación para delimitar bloques de código, y las diferencias clave entre las versiones 2.7 y 3.0 de Python.

Cargado por

Edison Tene
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
60 vistas37 páginas

Python Intro

El documento proporciona información sobre herramientas para descargar e instalar Python, la estructura básica del lenguaje como su tipado dinámico y la identación para delimitar bloques de código, y las diferencias clave entre las versiones 2.7 y 3.0 de Python.

Cargado por

Edison Tene
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 37

1

IDEs y sitios de descarga: Se sugiere Anaconda

https://repo.anaconda.com/archive/Anaconda3-2020.07-Windows-x86_64.exe

https://www.python.org/ftp/python/3.7.9/python-3.7.9.exe

2
ESTRUCTURA Y ELEMENTOS DEL LENGUAJE

Python
Es un lenguaje con identacion
 Por ejemplo, en C
int factorial(int x)
{
if (x < 0 || x % 1 != 0){
printf("x debe ser un numero entero mayor o igual a 0");
return -1; //Error
}
else if (x == 0)
return 1;
else
return x * factorial(x - 1);
}
 En Python
def factorial(x):
assert x >= 0 and x % 1 == 0, "x debe ser un entero mayor o igual a 0."
if x == 0:
return 1
else:
return x * factorial(x - 1)

www.robotechnics.es 3
CURSO DE INTRODUCCIÓN A PYTHON 16
ESTRUCTURA Y ELEMENTOS DEL LENGUAJE

Python
Es un lenguaje Open Source, del que existen diversas implementaciones del lenguaje:
 CPython es la implementación original (realizada en C), disponible para varias plataformas en 
el sitio oficial de Python.
 IronPython es la implementación para .NET
 Jython es la implementación hecha en Java
 Todo lo que puedes hacer con Java también lo puedes hacer con Python 
 Incluso puedes acceder a través de Python a las API de Java si usas Jython 
(http://www.jython.org)

Cada una de estas versiones aprovechan las ventajas del programa en el que están diseñadas

www.robotechnics.es 4
CURSO DE INTRODUCCIÓN A PYTHON 17
ESTRUCTURA Y ELEMENTOS DEL LENGUAJE

Introducción a Python
Python tiene tipado dinámico de las variables:
En Java, por ejemplo, escribiríamos:
String c = "Hola Mundo";
int e = 23;

Sin embargo, en Python, los tipos de variables 


pueden cambiar de forma dinamica:
c = “Hola Mundo”
C= 23

La variables son objetos que apuntan a una dirección de memoria. Cuando se cambian de forma 
dinámica, el mismo objeto apunta a otra dirección y la dirección antigüa se borra automáticamente

www.robotechnics.es 5
CURSO DE INTRODUCCIÓN A PYTHON 18
ESTRUCTURA Y ELEMENTOS DEL LENGUAJE

Introducción a Python: Paradigmas de programación
Existen decenas de paradigmas de programación, los más importantes son:
• Procedural: En la programación procedural se le dan ordenes directas a la computadora, que van 
cambiando el estado del programa. Ejemplo: BASIC
• Estructurada: Es un caso particular de programación procedural, la diferencia es que hay un flujo
ordenado (jerárquico) con alguna combinación de los siguientes elementos: Secuencias, selección 
y repetición. Se reutilizan bloques de código y es relativamente fácil seguir la lógica del programa. 
Ejemplo: C, Pascal.
• Orientada a objetos: Se usan estructuras de datos que tienen datos y métodos (objetos) con sus 
interacciones para diseñar programas. Ejemplos: Java, C++
Python suele ser clasificado como "multiparadigma" debido a que puede ser usado tanto de
manera estructurada como orientado a objetos. Esto depende de las preferencias del 
programador, no impone uno de los dos métodos

www.robotechnics.es 6
CURSO DE INTRODUCCIÓN A PYTHON 19
ESTRUCTURA Y ELEMENTOS DEL LENGUAJE

Diferencias entre Python 2.7 y 3.0
 Print es una función en python 3

 En Python 2 → print "hola mundo"

 En Python 3 → print ("hola mundo")

 División de números enteros. print (3 / 2)
 En Python 2 → = 1

 En Python 3 → = 1.5

 Las “cadenas” (“strings”) son Unicode de forma predeterminada en python 3


 Input es una cadena de texto en python 3
 La función next() y el método .next()
 En python 2 se puede usar next tanto como una función next(algo) o como un método 

algo.next(), sin embargo en Python 3 solo se puede usar como función:

www.robotechnics.es 7
CURSO DE INTRODUCCIÓN A PYTHON 20
ESTRUCTURA Y ELEMENTOS DEL LENGUAJE

Diferencias entre Python 2.7 y 3.0
 Manejo de Exepciones

 En python 2 se acepta las dos maneras de escribir una excepción (sin paréntesis o con paréntesis


como si fuera una función), en cambio en python 3 solo se acepta de la segunda forma.
 Hay mas cambios … pero los dejamos de momento

www.robotechnics.es 8
CURSO DE INTRODUCCIÓN A PYTHON 21
ESTRUCTURA Y ELEMENTOS DEL LENGUAJE

Introducción a Python
• En windows: abrir ventana de terminal y poner
python mifichero.py (En Linux    python3 mifichero.py)

Si no se ejecuta, es necesario comprobar las variables de entorno que es donde se buscan los
programas que se pueden ejecutar.

En Windows, en “Mi Equipo” ir a Propiedades / Config Avanzada del sistema/Variables de


entorno/Variables del Sistema

En la variable PATH hay que añadir el directorio donde esté el intérprete de Python
Normalmente: 
Se añade con “;” + directorio y se cierra el terminal para que se actualice

Hemos invocado al intérprete para que coja el código fuente y lo ejecute
Previamente lo ha analizado para ver que cumple las reglas del lenguaje
Si se genera el código intérprete aparecerá el fichero: mifichero.pyc

www.robotechnics.es 9
CURSO DE INTRODUCCIÓN A PYTHON 22
ESTRUCTURA Y ELEMENTOS DEL LENGUAJE

Tipos de Datos

www.robotechnics.es 10
CURSO DE INTRODUCCIÓN A PYTHON 23
ESTRUCTURA Y ELEMENTOS DEL LENGUAJE

TIPOS DE DATOS

www.robotechnics.es 11
CURSO DE INTRODUCCIÓN A PYTHON 24
ESTRUCTURA Y ELEMENTOS DEL LENGUAJE

PALABRAS RESERVADAS EN PYTHON

False class finally is return


None continue for lambda try
True def from nonlocal while
and del global not with
as elif if or yield
assert else import pass
break except in raise

www.robotechnics.es 12
CURSO DE INTRODUCCIÓN A PYTHON 25
ESTRUCTURA Y ELEMENTOS DEL LENGUAJE

Secuencia de Escape Significado
\newline Backslash and newline ignored
\\ Backslash (\)
\' Single quote (')
\" Double quote (")
\a ASCII Bell (BEL)
\b ASCII Backspace (BS)
\f ASCII Formfeed (FF)
\n ASCII Linefeed (LF)
\r ASCII Carriage Return (CR)
\t ASCII Horizontal Tab (TAB)
\v ASCII Vertical Tab (VT)
\ooo Character with octal value ooo
\xhh Character with hex value hh

www.robotechnics.es 13
CURSO DE INTRODUCCIÓN A PYTHON 26
ESTRUCTURA Y ELEMENTOS DEL LENGUAJE

Introducción a Python
• Ejercicio: Generar fichero de texto plano con nombre: mifichero.py
Contenido del programa 
# esto es una cadena
c = "Hola Mundo"

d = 'Hola Mundo'
# y esto es un entero
e = 23
# podemos comprobarlo con la función type
print (type(c))
print (type(e))
'''
Esto en un comentario multipl2
'''
input()
OJO con la identación: No se pueden dejar espacios, tabulaciones etc a la derecha. No poner
caracteres especiales ni siguiera en las líneas de comentarios

www.robotechnics.es 14
CURSO DE INTRODUCCIÓN A PYTHON 27
ESTRUCTURA Y ELEMENTOS DEL LENGUAJE

TIPOS DE DATOS: Números


– Enteros: int y long
– Reales (decimales): float
Operaciones:

www.robotechnics.es 15
CURSO DE INTRODUCCIÓN A PYTHON 28
ESTRUCTURA Y ELEMENTOS DEL LENGUAJE

TIPOS DE DATOS: Cadenas de texto
La codificación ASCII se definió en 1960 y se desarrolló para tecnologías de 8 bits. 
ASCII estándar, concretamente, utiliza los 7 primeros bits para codificar la información y el número 8 es
el bit de paridad usado para controlar errores.
Con los 7 bits se diseñó un juego de 128 caracteres (en binario 2 elevado a 7), partiendo del carácter 
identificado con el número 0 y terminando en el número 127. 

(espacio) ! " # $ % & ' ( ) * + , ­ . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ?


@ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _
` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~
Está codificación estaba pensada para el alfabeto inglés

www.robotechnics.es 16
CURSO DE INTRODUCCIÓN A PYTHON 29
TIPOS DE DATOS: Cadenas de texto ESTRUCTURA Y ELEMENTOS DEL LENGUAJE

www.robotechnics.es 17
CURSO DE INTRODUCCIÓN A PYTHON 30
ESTRUCTURA Y ELEMENTOS DEL LENGUAJE

TIPOS DE DATOS: Cadenas de texto
A lo largo del tiempo surgieron otras codificaciones hasta que la globalización y la necesidad de 
intercambio de información en distintos sistemas y en diferentes idiomas hizo concentrar esfuerzos en 
el desarrollo de un proyecto universal de codificación llamado Unicode.  

"Unicode es un estándar de codificación de caracteres diseñado para facilitar el tratamiento de textos 


de múltiples lenguajes, incluido los basados en ideogramas o aquellos usados en textos de lenguas
muertas. El término Unicode proviene de los objetivos perseguidos durante el desarrollo del proyecto: 
universalidad, uniformidad y unicidad". 

En Unicode los caracteres alfabéticos, los ideogramas y los símbolos se tratan de forma equivalente y 


se pueden mezclar entre sí en un mismo texto, es decir, es posible representar en un mismo párrafo
caracteres del alfabeto árabe, cirílico, latino, ideogramas japoneses y símbolos musicales.  
Para hacernos una idea del volumen de caracteres que es capaz de representar Unicode, señalar que 
su versión 5.1 contiene más de 100.000. 

www.robotechnics.es 18
CURSO DE INTRODUCCIÓN A PYTHON 31
ESTRUCTURA Y ELEMENTOS DEL LENGUAJE

TIPOS DE DATOS: Cadenas de texto. MÉTODOS DISPONIBLES

>>> print('ACME', 50, 91.5)


ACME 50 91.5
>>> print('ACME', 50, 91.5, sep=',')
ACME,50,91.5
>>> print('ACME', 50, 91.5, sep=',', end='!!\n')
ACME,50,91.5!!
>>>

www.robotechnics.es 19
CURSO DE INTRODUCCIÓN A PYTHON 32
ESTRUCTURA Y ELEMENTOS DEL LENGUAJE

TIPOS DE DATOS: Cadenas de texto
Concatenación
a = "uno"
b = "dos"
c = a + b # c es "unodos"
print(c)
c = a * 3 # c es "unounouno"
print(c)

''' Operaciones con variables


'''
a=14
b=12
c = a+b
print(a, "hola", b, '=', c)

www.robotechnics.es 20
CURSO DE INTRODUCCIÓN A PYTHON 33
ESTRUCTURA Y ELEMENTOS DEL LENGUAJE

TIPOS DE DATOS: Cadenas de texto
Concatenación
'''
''' Operaciones con variables y texto
'''
a=14
b=12
c = a+b
print(a+b)
print(a, "hola", b, '=', c)
print(a+ "hola"+ b+ '='+ c) → ERROR

A la hora de concatenar número y cadenas de texto, es necesario convertir números as variables 


de texto:
print(str(a)+ "hola"+ str(b)+ '='+ str(c))

www.robotechnics.es 21
CURSO DE INTRODUCCIÓN A PYTHON 34
ESTRUCTURA Y ELEMENTOS DEL LENGUAJE

TIPOS DE DATOS: Boolean
True, False → OJO → primera letra siempre en mayúsculas
– Importantes en expresiones
– Realmente representan 0 y 1
­ Para convertir  a tipo Boolean:
bool(“True”)

'''
Operaciones con boolean
'''
a=1
b=0
print ("a=", a, " b= ", b)
print ("a and b -->", a and b)
print ("a or b -->", a or b)

www.robotechnics.es 22
CURSO DE INTRODUCCIÓN A PYTHON 35
CURSO DE PYTHON

Operadores Aritméticos

www.robotechnics.es 23
CURSO DE INTRODUCCIÓN A PYTHON 36
ESTRUCTURA Y ELEMENTOS DEL LENGUAJE

TIPOS DE DATOS: Operadores de comparación
Normalmente se usan en combinación con los Boolean

OJO → a = 5 → Esto es una asignación del valor 5 a la variable a


→ a == 5 → Esto es una operación de comparación. ¿Es a igual a 5?. El resultado es un
Boolean

www.robotechnics.es 24
CURSO DE INTRODUCCIÓN A PYTHON 37
ESTRUCTURA Y ELEMENTOS DEL LENGUAJE

TIPOS DE DATOS: Operadores de incremento
''' a=23 --> 23
Operaciones con operadores de incremento a=a+1 --> 24
'''
a+=1 --> 25
a=23
print("a=23 -->", a)
a*=2 --> 50
a=a+1 a/=2 --> 25.0
print("a=a+1 -->", a) a-=1 --> 23.0
a+=1 a**=1 --> 529.0
print("a+=1 -->", a)
#a++ → ERROR
a*=2 #a=a*2
print("a*=2 -->", a)
a/=2 #a=a/2
print("a/=2 -->", a)
a-=2 #a=a-2
print("a-=1 -->", a)
a**=2 #a=a**2
print("a**=1 -->", a)

www.robotechnics.es 25
CURSO DE INTRODUCCIÓN A PYTHON 38
ESTRUCTURA Y ELEMENTOS DEL LENGUAJE

CONVERSIONES DE TIPO
a = 10
#print ("La variable a es: " + a )
print ("La variable a es: " + str(a)) # concatenamos en un string y luego
imprimimos
print ("La variable a es: ", a) # imprimimos una cadena y una variable (añade un
espacio por defecto)

b = 2.3
c = 9.7657522334
print (b, " es del tipo ", type(b))
print (c, " es del tipo ", type(c))
d= "345"

print (d+str(a)) # convertimos numero a cadena


print (int(d)+a) # convertimos cadena a numero
print (b+c)
Print (a+b)

www.robotechnics.es 26
CURSO DE INTRODUCCIÓN A PYTHON 39
ESTRUCTURA Y ELEMENTOS DEL LENGUAJE

PETICIÓN DE DATOS DEL USUARIO


'''
Peticiones de datos al usuario
'''
print ("introduce un dato")
a = input()
print(a, type(a)) # el valor introducido siempre es una cadena

e = input ("introduce un dato "+d)


print (e)
print ("introduce un dato ", input(a))

print ("El resultado es ", int(input("Valor 1: ")) + int(input("Valor 2: ")))


# probar a meter 12.4334 en la linea anterior

print ("El resultado es ", float(input("Valor 1: ")) + float(input("Valor 2: ")))

www.robotechnics.es 27
CURSO DE INTRODUCCIÓN A PYTHON 40
ESTRUCTURA Y ELEMENTOS DEL LENGUAJE

EL “PROBLEMA” DE LOS NÚMEROS CON COMA FLOTANTE


El resultado de las operaciones con números flotantes puede ser inesperado:
>>> 0.1 + 0.1 + 0.1 ­ 0.3
5.5511151231257827e­17
La causa de este problema es que Python no esconde el hecho que las operaciones que involucran 
numeros de punto flotante no son exactas debido a que hay un error inherente al pasar internamente 
los números de la base 2 (la que usa realmente el hardware) a la base 10. 
Este error ocurre con todos los lenguajes, la diferencia es que la mayoría de los lenguajes oculta este 
hecho usando algún tipo de redondeo. 
En Python este redondeo hay que hacerlo de manera:
>>> round(0.1 + 0.1 + 0.1 – 0.3, 1)
0.

www.robotechnics.es 28
CURSO DE INTRODUCCIÓN A PYTHON 41
ESTRUCTURA Y ELEMENTOS DEL LENGUAJE

EL “PROBLEMA” DE LOS NÚMEROS CON COMA FLOTANTE

Un ordenador no es capaz de resolver de forma continua todos los datos, sino que lo hace en forma de  


escalones. A mayor número de bits, mayor es la precisión alcanzada.
En el ejemplo anterior:
>>> 0.1 + 0.1 + 0.1 ­ 0.3
5.5511151231257827e­17
Es decir, para 64 bits, el error en la precisión es del orden de 10E­17
Debido precisamente a ese salto en escalones en los cálculos del ordenador, su  sistema de 
medición de la información es el siguiente: 
1 bit es la unidad mínima, y puede valer 0 o 1. 
1 byte es un grupo de 8 bits. 
1 kilobyte (a veces escrito como KB) es un grupo de 1024 bytes (es decir, 8192 bits o 2**10). 
1 megabyte (MB) es un grupo de 1024 KB (es decir, 1048576 bytes). 1 gigabyte (GB) es un grupo de 
1024 MB.
www.robotechnics.es 29
CURSO DE INTRODUCCIÓN A PYTHON 42
ESTRUCTURA Y ELEMENTOS DEL LENGUAJE

EL “PROBLEMA” DE LOS NÚMEROS CON COMA FLOTANTE

>>> from decimal import Decimal


>>> a = 4.2 >>> a = Decimal('4.2')
>>> b = 2.1 >>> b = Decimal('2.1')
>>> a + b >>> a + b
6.300000000000001 Decimal('6.3')
>>> (a + b) == 6.3 >>> print(a + b)
False 6.3
>>> >>> (a + b) == Decimal('6.3')
True
>>>

www.robotechnics.es 30
CURSO DE INTRODUCCIÓN A PYTHON 43
ESTRUCTURA Y ELEMENTOS DEL LENGUAJE

EL “PROBLEMA” DE LOS NÚMEROS CON COMA FLOTANTE


>>> from decimal import localcontext
>>> a = Decimal('1.3')
>>> b = Decimal('1.7')
>>> print(a / b)
0.7647058823529411764705882353
>>> with localcontext() as ctx:
... ctx.prec = 3
... print(a / b)
0.765
>>> with localcontext() as ctx:
... ctx.prec = 50
... print(a / b)
...
0.764705882352941176470588235294117647058823529
41176
>>>

www.robotechnics.es 31
CURSO DE INTRODUCCIÓN A PYTHON 44
ESTRUCTURA Y ELEMENTOS DEL LENGUAJE

>>> x = 1234.56789
EL “PROBLEMA” DE LOS NÚMEROS CON >>> # Two decimal places of accuracy
>>> format(x, '0.2f')
COMA FLOTANTE '1234.57'
>>> # Right justified in 10 chars, one-digit accuracy
>>> format(x, '>10.1f')
' 1234.6'
you want to use exponential notation, change >>> # Left justified
the format to an >>> format(x, '<10.1f')
case you want used for the exponential '1234.6 '
>>> # Centered
specifier. For example: >>> format(x, '^10.1f')
>>> format(x, 'e') ' 1234.6 '
'1.234568e+03' >>> # Inclusion of thousands separator
>>> format(x, '0.2E') >>> format(x, ',')
'1.23E+03' '1,234.56789'
>>> format(x, '0,.1f')
'1,234.6'
>>>

www.robotechnics.es 32
CURSO DE INTRODUCCIÓN A PYTHON 45
ESTRUCTURA Y ELEMENTOS DEL LENGUAJE

>>> from fractions import Fraction


OTROS FORMATOS >>> a = Fraction(5, 4)
>>> b = Fraction(7, 16)
>>> print(a + b)
27/16
>>> x = 1234 >>> print(a * b)
>>> bin(x) 35/64
'0b10011010010' >>> # Getting numerator/denominator
>>> oct(x) >>> c = a * b
'0o2322' >>> c.numerator
>>> hex(x) 35
>>> c.denominator
'0x4d2'
64
>>> format(x, 'b') >>> # Converting to a float
'10011010010' >>> float(c)
>>> format(x, 'o') 0.546875
'2322' >>> # Limiting the denominator of a value
>>> format(x, 'x') >>> print(c.limit_denominator(8))
'4d2' 4/7
>>> # Converting a float to a fraction
>>>
>>> x = 3.75
>>> y = Fraction(*x.as_integer_ratio())
>>> y
Fraction(15, 4)

www.robotechnics.es 33
CURSO DE INTRODUCCIÓN A PYTHON 46
34
35
36
37

También podría gustarte