Está en la página 1de 52

Fundamentos de Programación en Python

Tipo de datos, variables, operaciones básicas de entrada y


salida, operadores básicos
MSc. Ing. Andrea Teresa Cubillos Johnen
Año 2021
Tipos de datos, variables,
operaciones básicas de entrada y
salida, operadores básicos

• Como escribir y ejecutar tu primer programa Python


• Literales de Python
• Operadores y expresiones Python
• Variables – nombramiento y utilización
• Operaciones básicas de entrada y salida en Python
Objetivos

• Familiarizarse con los métodos básicos de formateo y salida de datos ofrecidos por Python,
junto con los tipos principales de datos y operadores numéricos, sus relaciones mutuas y
enlaces.
• Utilizar las funciones y palabras claves para mostrar datos y realizar operaciones aritméticas
• Comprender el concepto de variables y la manera correcta de darles nombre.
• Utilizar el operador de asignación, las reglas que rigen la construcción de expresiones.
• Poner en práctica la entrada y conversión de datos.
Los tipos de datos y los métodos básicos de
formateo, conversión de datos, entrada y
salida de datos
Hello, World!

print("Hello, World!")

Las partes que componen este primer La palabra print es el nombre de la


programa son las siguientes: función.
Una función (en este contexto) es una sección
• La palabra print del código de la computadora que es capaz
de:
• La apertura de un paréntesis
• Una comilla • Causar algún efecto (ej. enviar texto a la
terminar, crear un archivo, dibujar una
• Una línea de texto Hello, World!
imagen, reproducer un sonido, etc.)
• Otra comilla
• Evaluar un valor (ej. la raiz cuadrada de un
• El cierre de paréntesis
valor o la longitud de un texto) y lo
retorna como el resultado de la función.
Muchas funciones en Python pueden realizar
ambas cosas.
Funciones en Python

Las funciones pueden venir con Python, la Como mencionado, una función puede tener:
función print() es una de este tipo, tal • Un efecto
función es un valor agregado que se recibe • Un resultado
con Python y sus ambientes (está integrado).
Pueden venir de uno o varios add-ons de También hay un tercer componente muy
Python llamados módulos, algunos de estos importante, el (los) argumento(s).
módulos vienen con Python, otros pueden
requerir una instalación separada. El único argumento entregado en la función
También se pueden escribir, añadir tantas print() es una cadena (string).
funciones se quieran y necesitan dentro del
programa para hacerlo más simple, más claro La función print() junto con el paréntesis
y más elegante. y los argumentos, forman la invocación de
una función.
Funciones en Python

Que pasa cuando Python se encuentra con la Cuarto, la función ejecuta el código y causa el
siguiente invocación? efecto deseado, evalúa los resultados
deseados y termina su tarea.
nombre_de_la_funcion(argumento)

Primero, Python verifica si el nombre Finalmente, Python retorna al Código y


especificado es legal, si esta búsqueda falla, continua su ejecución.
Python aborta el código.

Segundo, Python valida los requisitos de la


función para verificar si el número de
argumentos permite invocar la función.

Tercero, Python se va del código por un


momento y salta a la función que se quiere
invocar (enviando los argumentos).
Instrucciones de la función print()

print("The itsy bitsy spider climbed up the waterspout.")


print("Down came the rain and washed the spider out.")

print("The itsy bitsy spider climbed up the waterspout.")


print()
print("Down came the rain and washed the spider out.")
Caracteres de Escape y NewLine (Nueva Línea)

print("The itsy bitsy spider\nclimbed up the waterspout.")


print()
print("Down came the rain\nand washed the spider out.")

caracter de caracter
escape nueva línea
El caracter de Escape

Esta convención tiene dos consecuencias importantes:

1. Si se desea poner solo un backslash dentro de una cadena, no olvidar su naturaleza de


escape, hay que duplicarla, por ejemplo, la siguiente invocación causará un error:
print("\")

Mientras esta no:


print("\\")

2. No todos los pares de escape (el backslash en conjunto con otro character) significan algo.
Utilizando varios argumentos

Se puede tener más de un argumento con la función print()

• Una función print()invocada con más de un argumento, los muestra todos en una linea.
• La función print()pone un espacio entre los argumentos mostrados por iniciativa
propia.

print ("The itsy bitsy spider" , "climbed up" , "the waterspout.")


Palabras reservadas (keywords)

La función print()tiene dos palabras reservadas como argumento.

• end
print("My name is", "Python.", end=" ")
print("Monty Python.")

• sep
print("My", "name", "is", "Monty", "Python.", sep="-")
Funciones integradas (Built-in)

En Python 3.8 existen 69 funciones built-in. Estas pueden encontrarse en la Libería Estándar de
Python.

https://docs.python.org/3/library/functions.html
Literales – Los datos en sí

Un literal es un dato cuyos valores son determinados por el mismo literal.

print("2")
print(2)

En este ejemplo, hay dos tipos de literales: un string y un número integer

Para determinar el tipo de dato, podemos utilizar la función type() de Python.


Trabajando con números

Los números manejados por las computadoras modernas son de dos tipos:

integers, aquellos que tienen la parte fraccional vacía.


• 4

Floating-points (floats), que contiene (o son capaces de mantener) la parte


fraccional.
• 4.0

La característica del valor numérico que determina su tipo, rango y aplicación es llamada el
tipo (type).
Enteros (Integers)

Estamos familiarizados con la representación de estos números:

11,111,111 -11,111,111
11.111.111 -11.111.111
11 111 111 -11 111 111

Python no acepta esto (está prohibido). Puedes escribir este número en Python así:

11111111 -11111111
o así
11_111_111 -11_111_111
Números Octales y Hexadecimales

Si un número entero es precedido por un prefijo 0O ó 0o (cero-o), será tratado como un valor
octal. Esto significa que el número debe contener dígitos tomados del siguiente rango: [0..7].
La segunda convención permite utilizar números hexadecimales. Tales números deben ser
precedidos por el prefijo 0x o 0X (cero-x).

0o123 es un número octal con valor decimal igual a 83.


print(0o123)

0x123 es un número hexadecimal con un valor decial igual a 291.


print(0x123)

La función print() realiza la conversion automáticamente.


Flotantes (Float)

Hay números que tienen (o pueden tener) una parte fraccional despues del punto decimal.
2.5
-0.4
.4
4.

En los siguientes números, es el punto que los hace flotantes. Python no acepta comas (,).
4
4.0
Flotantes con Exponentes

También se pueden crear flotantes con exponents (notación científica).

300000000  3 x 108  3e8 ó 3E8


print(0.0000000000000000000001)
1e-22

Python siempre escoge la forma más económica de la presentación del número, por lo que
hay que tomar como consideración al crear literales.

Ejemplos:
print(0o123)
print(0x123)
print(0.0000000000000000000001)
Cadenas (Strings)

Las cadenas son utilizadas cuando se necesita procesar texto (como nombres de todo tipo como
direcciones, novelas, etc.) y siempre necesitan comillas.

Con Python 3.x se pueden utilizar comillas simples (‘ ’) o dobles (" ").

Se utilizan comillas simples o dobles para incluir comillas o apóstrofes en una cadena.
Se utilizan comillas triples para cadenas múltiples
Ejemplo
print("I am a string.")
print("I like \"Monty Python\"")
print(‘I like "Monty Python"’)

Intentar imprimir  I like "Python"


Boolean

Los literales boolean representan dos tipos de valores: True o False (1 ó 0).

En Python:

• Se assume que el valor de 1 es True


• Se assume que el valor de 0 es False

Hay que tomar estos símbolos como están, incluyendo case-sensitivity


Operadores
Operadores Básicos

Un operador es un símbolo de un language de programación, el cual es capaz de operar sobre


los valores. Algunos operadores communes son:

+
-
*
/
//
%
**
Exponentes

Un ** (doble asterisco) símbolo de un operador de exponente (potencia). Su argumento


izquierdo es la base, su argumento derecho, el exponente.

print(2 ** 3) 8
print(2 ** 3.) 8.
print(2. ** 3) 8.
print(2. ** 3.) 8.
Operadores Aritméticos: Multiplicación y División

El símbolo * (asterisco) es un operador de multiplicación.


Un signo / (slash) es un operador de división. El resultado siempre será un tipo flotante.

print(2 * 3) 6 print(6 / 3) 2.0


print(2 * 3.) 6.0 print(6 / 3.) 2.0
print(2. * 3) 6.0 print(6. / 4) 1.5
print(2. * 3.) 6.0 print(6. / 4.) 1.5
División Entera

El signo // (double slash) es un operador de division entera. Difiere del operador estándar /
en dos detalles:

Su resultado carece de la parte fraccional - está ausente (para los enteros), o es igual a cero
(para los flotantes), esto significa que el resultado siempre será redondeado. El redondeo
siempre irá al valor entero más bajo.

print(6 // 3) 2
print(6 // 3.) 2.0
print(6. // 3) 2.0
print(6 // 4) 2
print(6. // 4) 2.0
print(-6 // 4) -2
print(6. // -4) -2.0
Residuo (Modulo)

Su representación gráfica en Python es el símbolo % (porcentaje) y el resultado del operador


es el residuo luego de la división entera.

print(14 % 4)  2
print(12 % 4.5)  3.0
Adición y Substracción

El operador de adición es el símbolo + (más)


print(-4 + 4)
print(-4. + 8)

El operador de substracción es el signo - (menos)


print(-4 - 4)
print(4. - 8)
Operadores Unarios y Binarios

El signo - (menos) también tiene otro significado. Puede cambiar el signo de un número.

print(-1.1) Unario

print(-4 - 4)
print(-4 + 4)
Binario
Operadores y sus Prioridades

Considerar la siguiente expression:


2 + 3 * 5

La multiplicación precede a la suma.

print(9 % 6 % 2)

La mayoría de los operadores de Python tienen enlace hacia la izquierda.


Adición y Substracción

El enlazado del operador determina el orden de los cómputos realizados por algunos
operadores de igual prioridad, puestos lado a lado en una expression.

print(2 ** 2 ** 3)

El operador de exponenciación utiliza el enlazado desde la derecha.


Jerarquía de Prioridades

Prioridad Operador
1 +, - unario
2 **
3 *, /, %, //
4 +, - binario

print(2 * 8 % 5)  1

print(8 % 5 * 2)  6
Operadores y Paréntesis

De acuerdo a las reglas aritméticas, las subexpresiones en paréntesis son siempre calculadas
primero.
Se puede utilizar la cantidad de paréntesis que se necesiten, y generalmente son utilizadas
para mejorar la legibilidad de una expresión.

print((5 * ((25 % 13) + 100) / (2 * 13)) // 2)


((5 * ((12) + 100) / (26)) // 2)
((5 * (12 + 100) / 26) // 2)
((5 * (112) / 26) // 2)
((5 * 112 / 26) // 2)
((560 / 26) // 2)
(21.53856 // 2)
10
Ejercicios

1. ¿Cuál es el resultado de la siguiente operación?


print((2 ** 4), (2 * 4.), (2 * 4))

2. ¿Cuál es el resultado de la siguiente operación?


print((-2 / 4), (2 / 4), (2 // 4), (-2 // 4))

3. ¿Cuál es el resultado de la siguiente operación?


print((2 % -4), (2 % 4), (2 ** 3 ** 2))
Variables
Variables

Las variables son utilizadas para almacenar números o para almacenar el resultado de las
operaciones, con el fin de que éstas sean utilizadas en otras operaciones. Las variables
reservan espacio de memoria para almacenar estos valores.

Cada variable de Python debe tener:


• Un nombre
• Un valor (el contenido del contenedor)
Reglas para nombrar variables

• El nombre de las variables debe estar compuesta de letras MAYUSCULAS o minúsculas,


digitos y el caracter _(guión bajo).
• El nombre de la variable debe comenzar con una letra
• El caracter de guión bajo es una letra
• MAYUSCULAS y minúsculas son tratadas de maneras diferentes
• El nombre de la variable no debe:
• ser una palabra reservada (keyword) de Python.
• comenzar con un número [0-9]

Tomar en cuenta que las mismas restricciones aplican para nombrar funciones.
Nombres correctos e incorrectos para una variable

Correcto:
MyVariable
i
t34
Exchange_Rate
Counter
DaysToChristmas
_
TheNameIsSoLongThatYouWillMakeMistakesWithIt
Adiós_Señora
sûr_la_mer
Einbahnstraße
переменная.

Incorrecto:
10t
Exchange Rate
PEP8 – Style Guide for Python Code

PEP8 recomienda las siguientes convenciones de nombres para las variables y funciones en
Python:

• Los nombres de variables deben estar en minúscula, con palabras separadas por _ para una
major legibilidad
• Los nombres de funciones siguen las mismas convenciones que los nombres de las
variables
• Es posible combinar minúsculas y mayúsculas (ej. myVariable)

https://www.python.org/dev/peps/pep-0008/
Palabras reservadas (keywords)

'False', 'None', 'True', 'and', 'as', 'assert', 'break',


'class', 'continue', 'def', 'del', 'elif', 'else', 'except',
'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is',
'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return',
'try', 'while', 'with', 'yield‘

Las palabras reservadas no deben utilizarse para variables, funciones u otras entidades.
Recordar que Python es case-sensitive, por lo que Print y print son dos palabras
distintas.
Creando Variables

Una variable existe como resultado de asignarle un valor. A diferencia de otros lenguajes, no es
necesario declararla de ninguna forma en especial.

Si se le asigna cualquier valor a una variable no existente, la variable se creará


automáticamente. No es necesario realizar otra operación.

var = 1
print(var)
Usando variables

var = 1
account_balance = 1000.0
clientName = 'John Doe'
print(var, account_balance, clientName)
print(var)

No está permitido utilizar una variable que no existe, en otras palabras, no es posible utilizar
una variable a la cual no se le ha asignado algún valor.

Var = 3
print(var) #esto causará un error puesto que esta variable no
existe

var = "3.9.1"
print("Python version: " + var)
Python version: 3.9.1
Asignar valor a una variable

Para asignar valor a una variable, se debe utilizar el signo = (operador de asignación). Este
asigna el valor de la derecha al argumento de la izquierda.

var = 1
print(var)
var = var + 1
print(var)
1
2

var = 100
var = 200 + 300
print(var)
500
Operadores de Atajos

x = x * 2 x *= 2
sheep = sheep + 1 sheep += 1

Ejemplos:

i = i + 2 * j ⇒ i += 2 * j
var = var / 2 ⇒ var /= 2
rem = rem % 10 ⇒ rem %= 10
j = j - (i + var + rem) ⇒ j -= (i + var + rem)
x = x ** 2 ⇒ x **= 2
Comentarios

Un comentario es una observación insertada dentro de un programa, el cual es omitido en


tiempo de ejecución. Python no soporta comentarios de multiples líneas, para ello se debe
ponder varios # al comienzo de cada línea.

# This program evaluates the hypotenuse (c)


# a and b are the lengths of the legs
a = 3.0
b = 4.0
c = (a ** 2 + b ** 2) ** 0.5 # we use ** instead of square root
print("c =", c)
La función input()

La función input() es capaz de leer los datos ingresados por los usuarios y para devolver el
mismo dato en tiempo de ejecución.

print("Dime cualquier cosa...")


algo = input()
print("Me acabas de decir", algo, "!")

La función input() es invocada con un argumento, el cual es una cadena (string)


conteniendo un mensaje.
Resultado de la función input()

El resultado de la función input() es siempre una cadena (string).

anything = input("Enter a number: ")


something = anything ** 2.0
print(anything, "to the power of 2 is", something)
Conversión de Datos (Type Casting)

Python ofrece dos funciones simples para especificar un tipo de dato y solucionar el problema
del ejemplo anterior:

• int() toma un argumento e intenta convertirlo en un entero (integer).


• float() toma un argumento e intenta convertirlo en un flotante (float).

anything = float(input("Enter a number: "))


something = anything ** 2.0
print(anything, "to the power of 2 is", something)
Operadores sobre cadenas (strings): Concatenación

El signo + (más), cuando se aplica a dos cadenas (strings), se convierte en un operador de


concatenación.
string + string

fnam = input("May I have your first name, please? ")


lnam = input("May I have your last name, please? ")
print("Thank you.\n\n")
print("Your name is " + fnam + " " + lnam + ".")
Operadores sobre cadenas (strings): Replicación

El signo * (asterisco), al ser aplicado a una cadena (string) y número (o a un número y


cadena (string)) se convierte en un operador de replicación.

Por ejemplo:

print("James" * 3)
>>>JamesJamesJames
print(3 * "an")
>>>ananan
print(5 * "2", "2" * 5)
>>>22222 22222

Para convertir un número a un string, se utiliza la función str():


print(str(2 ** 3))
>>>8
PREGUNTAS

También podría gustarte