0% encontró este documento útil (0 votos)
238 vistas16 páginas

Curso Python Básico Exactas UBA

Este documento presenta los conceptos básicos de Python como asignación de variables, listas, cadenas, funciones, ciclos, condiciones if y módulos. Explica cómo usar el entorno de desarrollo Spyder para escribir y probar programas en Python de manera sencilla. Por último, propone implementar un juego simplificado de Blackjack llamado Nano Jack como actividad para practicar los conocimientos adquiridos.

Cargado por

Mati Volij
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)
238 vistas16 páginas

Curso Python Básico Exactas UBA

Este documento presenta los conceptos básicos de Python como asignación de variables, listas, cadenas, funciones, ciclos, condiciones if y módulos. Explica cómo usar el entorno de desarrollo Spyder para escribir y probar programas en Python de manera sencilla. Por último, propone implementar un juego simplificado de Blackjack llamado Nano Jack como actividad para practicar los conocimientos adquiridos.

Cargado por

Mati Volij
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

Un poco más de Python

ExactasPrograma

Facultad de Ciencias Exactas y Naturales, UBA

Verano 2019

ExactasPrograma (Exactas-UBA) Un poco más de Python Verano 2019 1 / 16


Resumen

Asignación

Anastasio = 4
Pedrito = 8
Laura = 5
Micaela = 10

Asignación
En Python podemos darle nombre a las cosas y asociarles un valor. Esto se llama
asignar un valor a una variable.
Anastasio es la variable y 4 es el valor.

Estado de un programa
El estado de un programa en un momento de su ejecución está definido por el valor de
todas sus variables en ese momento. Cuando se analiza qué es lo que hace el
programa, nos interesa ver y entender cómo cambian los valores de las variables.

ExactasPrograma (Exactas-UBA) Un poco más de Python Verano 2019 2 / 16


Resumen

¿Cómo se ve la ejecución de un programa?

Este sitio permite ejecutar paso a paso nuestro programa.


Nos permite ver el resultado de cada instrucción (estado del programa).

ExactasPrograma (Exactas-UBA) Un poco más de Python Verano 2019 3 / 16


Resumen

Listas

En Python existen las listas, que sirven para almacenar valores:


Anastasio = []
Pedrito = []
Laura = []
Micaela = []

[Link](4)
[Link](8)
[Link](5)
[Link](10)

[Link](6)
[Link](9)
[Link](6)
[Link](13)

¿Qué pasa si ejecuto la lı́nea print("Anastasio:", Anastasio)?


La salida me muestra: Anastasio: [4, 6]
Es una manera linda de ver el contenido de la lista... pero hay algo más ahı́,¿no?
Se puede definir una lista (por extensión) como:
milistita = [2, -1, 4, -2, 8, 17]

ExactasPrograma (Exactas-UBA) Un poco más de Python Verano 2019 4 / 16


Resumen Cadenas de caracteres

Cadenas de caracteres

Definición
Es una secuencia de caracteres definida por medio de comillas, es parecida a una
lista, pero no es igual (es un tipo inmutable):
’Hola, trencito’

Las operaciones básicas (algunas también funcionan con listas) son:


+: concatenación. 'Hola' + ', trencito' da 'Hola, trencito'.
int: convierte una cadena a número entero. int('33') da 33.

float: convierte una cadena a número con coma. float('4.5') da 4.5.


Al igual que con cualquier lista, dos de las funciones más usadas son:
[]: para acceder a los contenidos de posiciones individuales dentro de una cadena.
Por ejemplo, 'Hola'[3] da 'a'.
len: devuelve la longitud de la cadena de caracteres. len('abc') devuelve 3.
lower: devuelve la misma cadena pero en minúsculas. 'Hola'.lower() da
'hola'.

upper: similar a la anterior, pero pasa a mayúsculas. 'Hola'.upper() da 'HOLA'.

ExactasPrograma (Exactas-UBA) Un poco más de Python Verano 2019 5 / 16


Resumen Funciones

Funciones en Python

Son una construcción que permite encerrar un pedacito de programa.


Ası́ como append, hay muchı́simas funciones que se pueden utilizar y aprovechar.
Permiten definir cierto comportamiento interesante y no tener que volverlo a
programar cada vez.
Los lenguajes de programación tienen un mecanismo para definir funciones.
Los valores que recibe una función se llamas parámetros o argumentos.

Tabulación
Python sabe donde termina la definición de una función por la tabulación: las
instrucciones que componen la función están un tab o 4 espacios hacia la izquierda.

Tabulación, el retorno
Es importante usar una cantidad de espacios o tabulación, pero no mezclar, sino
empiezan a aparecer errores muy raros de Python. ¡Sean prolijos!

ExactasPrograma (Exactas-UBA) Un poco más de Python Verano 2019 6 / 16


Resumen Ciclos

Ciclos

El while permite repetir una serie de instrucciones mientras se cumpla una


condición.
Si, desde el principio, sabemos que el rango del ciclo es fijo, se puede usar for.
Definamos la función suma_elem, que suma todos los elementos de una lista
usando for y while:
Con while:
Con for:
def suma_elem(l):
suma = 0 def suma_elem(l):
i = 0 suma = 0
while i<len(l): for i in range(0,len(l),1):
suma = suma + l[i] suma = suma + l[i]
i = i+1 return suma
return suma

range(inf, sup, paso): devuelve una estructura que toma los números
desde inf hasta sup de a paso. Por default, inf vale 0 y paso vale 1 (si no se los
escribe explı́citamente).

ExactasPrograma (Exactas-UBA) Un poco más de Python Verano 2019 7 / 16


Resumen If

Otra estructura de control: if

Permite ejecutar una serie de instrucciones si se cumple cierta condición.


Supongamos que queremos usar la función proc_jugadas cuando la lista de
jugadas no esté vacı́a o si lo estuviera, que el resultado fuera −1:
if Anastasio!=[]:
suma_Anastasio = proc_jugadas(Anastasio)
else:
suma_Anastasio = -1
if Pedrito!=[]:
suma_Pedrito = proc_jugadas(Pedrito)
else:
suma_Pedrito = -1
if Laura!=[]:
suma_Laura = proc_jugadas(Laura)
else:
suma_Laura = -1
if Micaela!=[]:
suma_Micaela = proc_jugadas(Micaela)
else:
suma_Micaela = -1

Los dos puntos (:) son obligatorios, ¡No olvidarse!

ExactasPrograma (Exactas-UBA) Un poco más de Python Verano 2019 8 / 16


Resumen If

Comparaciones y condiciones

Se pueden realizar distintas comparaciones:


< menor
<= menor o igual
> mayor
>= mayor o igual
== igual
!= distinto
También se pueden combinar distintas condiciones utilizando los operadores
lógicos:
not negación, si se aplica a True, da False y a la inversa.
and se usa x and y. Solo da True cuando x e y son True.
or se usa x or y. Da True cuando alguna de las dos (o las dos) es True.
Esto aplica tanto para las condiciones del if como a las del while.
if a>x and a<y: if a*a>x or a<y*y:
c = x*x+y*y c = a*a-y*y
else: else:
c = 2*x*y c = x*y/2

ExactasPrograma (Exactas-UBA) Un poco más de Python Verano 2019 9 / 16


Módulos

Módulos para usar otras funciones

Si bien Python tiene muchas funciones que se pueden usar directamente, hay
muchas otras que están disponibles como módulos.
Un módulo es una colección de funciones que alguien (o una comunidad)
desarrollaron y empaquetaron para que estén disponibiles para todo el mundo.
Para que las funciones estén disponibles para ser utilizadas en mi programa,
tengo que usar la instrucción import.
Si quiero generar números aleatorios, que están en el módulo random, tengo que
escribir:
import random

print([Link]())
print([Link]())
print([Link]())

¿Cómo sé que funciones o módulos hay? ¡¡¡Google!!!

ExactasPrograma (Exactas-UBA) Un poco más de Python Verano 2019 10 / 16


Spyder

Existe vida más allá del pythontutor: spyder

open source

cross-platform

integrated development environment (IDE)

incluye un editor de texto que remarca las palabras clave del lenguaje

tiene soporte para distintas versiones de Python

permite escribir programas y probarlos de manera muy sencilla

En las máquinas de los laboratorios, ya está instalado y listo para usarse (tipear
spyder3 o spyder como comando).

Para aquellos que tienen máquina Windows:


[Link] y bajar Python 3.7
version para Windows (64 bits para máquinas nuevas, 32 bits si tenes una
medio viejita).

ExactasPrograma (Exactas-UBA) Un poco más de Python Verano 2019 11 / 16


Spyder

Un entorno de desarrollo en Python: spyder

ExactasPrograma (Exactas-UBA) Un poco más de Python Verano 2019 12 / 16


Actividad de hoy

Nano Jack: como el Blackjack, pero con problemitas

Es uno de los juegos que habitualmente se


encuentran en los casinos.
Se juega entre varios jugadores (más de
dos).
Se usan las cartas francesas (las de
poker).
Cada jugador pide cartas tratando de que
sus valores sumen 21.
Si te pasas de 21, perdiste.
Nano Jack
Vamos a tomar el espiritu del Blackjack para armar un juego que podamos
implementar con un programa, ası́ que las reglas van a estar relajadas (ya las vamos a
ir viendo).

ExactasPrograma (Exactas-UBA) Un poco más de Python Verano 2019 13 / 16


Actividad de hoy

Empecemos con cartas de poker

Cada mazo de cartas tiene cuatro palos.


Dos palos son rojos, dos negros.
Las cartas van del 1 al 10 y tres figuras: J, Q, K.
A las figuras se les asigna valores: J vale 11, Q
vale 12 y K vale 13.

Pensemos entre todos


Nuestra tarea será hacer un programa de computadora que simule varios jugadores
en una partida de Nano Jack. ¿Cómo encaramos esto?

ExactasPrograma (Exactas-UBA) Un poco más de Python Verano 2019 14 / 16


Actividad de hoy

Modelando el juego

Cuando se enfrenta una situación ası́, lo mejor es revisar cómo es el juego y


cuáles son sus principales caracterı́sticas.

Si todo fue como lo planeado, tendremos algunos mazos de cartas para jugar un
poco entre nosotros.

Junto con divertirnos y conocernos, tratemos de buscar qué serı́a lo que un


programa tendrı́a que ir haciendo para jugar.

¿Qué esperan?
¡A armar los grupos y a jugar un ratito!

ExactasPrograma (Exactas-UBA) Un poco más de Python Verano 2019 15 / 16


Actividad de hoy

¡A trabajar!

Con todo lo que vimos, podemos empezar a solucionar el problema planteado en


el primer taller.

Recuerden que los docentes estamos para ayudar, aprovechen a consultar todo,
no se traben.

El material de las clases y las actividades del curso van a estar en el campus
virtual. El curso depende del Departamento de Computación.

Si no tiene cuenta, deberı́an poder acceder como “guest”. El curso depende del
Dto de Computación y está asociado al cuatrimestre de Verano 2019.

Importante
Aprender a programar se basa en equivocarse y aprender de los errores, ¡No tengan
miedo de experimentar y preguntar!

ExactasPrograma (Exactas-UBA) Un poco más de Python Verano 2019 16 / 16

También podría gustarte