PY4E: GETTING STARTED
Un programa es una secuencia de instrucciones almacenadas.
Acceso de las computadoras al “mundo exterior”: Hardware (dispositivos de entrada/salida)
SOFTWARE
Unidad central de procesamiento (CPU): corre el programa. Siempre se pregunta “qué
hago después?”. No es exactamente el cerebro, es tonto pero rápido
Memoria principal: almacenamiento temporal rápido pequeño. Borra al reiniciar, aka
RAM
Memoria secundaria: almacenamiento permanente lento largo. Dura hasta que lo
borren.
Disco duro: Tarjeta de memoria.
Dispositivos de entrada: teclado, mouse, pantalla
Dispositivos de salida: pantalla, cornetas, impresora
ELEMENTS OF PYTHON
Vocabulario / palabras : variables y palabras reservadas
Estructura de una oración : sintaxis valida
Historia de una estructura: construir un programa
PROGRAM STEPS
Tiene una secuencia de pasos que deben ser realizados en orden.
Algunos pasos son condicionales, por lo que se pueden omitir
A veces algunos pasos deben repetirse, y pueden ser necesarios una y otra vez durante
un programa
Sequential, repeated and conditional
CONDITIONAL STEPS
Se usa if.
Si es mayor que print bigger
Si es menor que print smaller
RESERVED WORDS
No se pueden usar como nombre de variables ni para identificarlas, ya que python espera que
estas palabras signifiquen justo lo que el conoce y no lo que nosotros queremos identificar.
EJEMPLO
False Class Return Is finally
None If For Lambda Continue
True Def From While Nonlocal
And Del Global Not With
As Elif Try Or Yield
Assert Else Import Pass Break
Except In raise
VARIABLES
Una variable es un lugar en la memoria donde el programador puede almacenar datos
y luego devolver la data usando el “nombre de la variable
Los programadores escogen los nombres de las variables
Se puede cambiar el contenido de una variable en un enunciado posterior
REGLAS DE PYTHON PARA NOMBRAR VARIABLES
Deben empezar con una letra o con guion bajo (_)
Deben consistir en letras, números o guion bajo
Distingue mayúsculas y minúsculas (case sensitive)
EJEMPLO
Good: spam spam23 _speed
Bad: 23spam #sign var.12
Different: Spam spam SPAM
STATMENTS OR LINES
x=2 enunciado asignado
x=x+2 Asignación con expresión
print(x) enunciado print/imprimir/salida
Variable operador constante función
Mnemonic : elegir un nombre de variable que tenga sentido para lo que estamos usando. Son
solo para humanos ya que python no nota la diferencia.
EJEMPLO
a = 35.0 hours = 35.0
b = 12.50 rate = 12.50
c=a*b pay = hours * rate
print(c) print(pay)
ASSIGMENT STATMENT
Asignamos un valor a una variable usando el enunciado asignado (=)
Consiste de una expresión en el lado derecho y una variable para almacenar el resultado.
x = 3.9 * x * ( 1 – x )
El lado derecho es una expresión, y una vez que es evaluada, el resultado es asignado a la x.
INCREMENT
Cuando a una variable se le asigna nuevo valor.
x=x+1
NUMERIC EXPRESIONS
Operador Operación
+ suma
- resta
* multiplicación
/ división
** Potencia (exponentiation/raise to a power)
% Sobra de una division
EVALUACION ORDER
Cuando hacemos una cadena de operadores Python sabe cual realizar primero
Esto es llamado prioridad de operador
OPERATOR PRECEDENCE RULES
Izquierda a derecha
Paréntesis
Potencia
Multiplicación, división, sobra
Suma, resta
TYPE
Python conoce la diferencia entre un numero entero y una cadena
+ puede servir para sumar enteros o para unir cadenas (palabras)
Cadenas y enteros no se pueden unir
SEVERAL TYPES OF NUMBERS
Enteros: todos los números, tanto negativos como positivos
Float point numbers: tienen decimales. Tambien pueden ser negativos decimales.
xx = 1 entonces, xx es un entero
temp = 98.5 entonces, temp es un flotante
TYPE CONVERTIONS
cuando se coloca un entero y un punto flotante en una expresión, el entero es
convertido automáticamente en punto flotante
se puede controlar con las funciones built-in int() y float()
las divisiones con números enteros arrojan floating point numbers
print(float(99) + 100)
199.0
i = 42
type(i)
class’int’
f = float(i)
print(f)
42.0
STRING CONVERSIONS
tambien se puede usar int() y float() para convertir cadenas y enteros
se obtiene un error si la cadena no contiene caracteres numéricos
sval = “123”
type(sval)
class “str”
print(sval + 1)
error
ival = int(sval)
type(ival)
class “int”
print(ival + 1)
124
USER INPUT
podemos decirle a python que haga una pausa y lea la data de un user usando la
funcion input()
la función input() regresa una cadena, incluso si incluimos números
COMMENTS IN PYTHON
cualquier cosa después de # es ignorado por python, se llaman comentarios
escribir comentarios para recordar por qué se hizo esa parte del código. Porque puede
que inmediatamente lo entendamos pero en futuro s epuede olvidar
input – processing – output
CONDITIONAL EXECUTION
If indica que haremos algo condicionado
Realmente es una pregunta
Dependiendo de la pregunta que se haga se ejecutara la respuesta, en este caso
“smaller” o “bigger”
Hacer una sangría de 4 espacios, es lo recomendado
x=5
if x<10:
print(“smaller”)
if x>20:
print(“bigger”)
print(“finish”)
COMPARISON OPERATORS
Python Meaning
< Menor que
<= Menor o igual que
== Igual que
>= Mayor o igual que
> Mayor que
!= distinto
Recorder: “=” es usado para asignacion
Boolean expressions: hace una pregunta y responde sí o no, lo cual usamos para
controlar el flujo del programa. También usando operadores de comparación evalua
verdadero/falso o si/no
Los operadores de comparación visualizan las variables pero no las cambian ni dañan
Para las sangrías
Aumentar/mantener después de if o for
Disminuir para indicar el final del bloque
NESTED DECISIONS
Cuando lleva un if o for dentro de un if
TWO WAY DECISIONS
A veces queremos hacer una cosa si la expresión lógica es verdadera y queremos
obtener otra respuesta (something else) si la expresión lógica es falsa
Se debe escoger una u otra pero no ambas
X=4
if x>2:
print(“bigger”)
else:
print(“smaller”)
print(“all done”)
MULTI-WAY
Elif: una combiancion de if y else
Solo hara una de las 3
If x<2:
print(“small”)
elif x<10:
print(“medium”)
else:
print(“large”)
print(“all done”)
TRY AND EXCEPT STRUCTURE
Puedes probar un codigo del cual no estas segura usando esta condicion
Si try funciona entonces except es omitido
Si try falla, salta a except
Astr=”hello bob”
try:
istr=int(astr)
except:
istr=-1
print(“first”,istr)
astr=”123”
try:
istr=int(astr)
except:
istr=-1
print(“second”,istr)
Se puede poner todo un bloque de codigo directo en try para probarlo
Astr=”bob”
try:
print(“hello”)
istr=int(astr)
print(“there”)
except:
istr=-1
print(“done”, istr)
STORED AND REUSED STEPS
Las funciones son esas cosas que estamos almacenando y reutilizando
Def thing():
print(“hello”)
print(“fun”)
Thing()
print(“zip”)
thing()
OUTPUT
Hello
fun
zip
hello
fun
MAX/MIN FUNCTION
Una función es algún código almacenado que usamos. Toma un input y produce un
output.
Max busca el caracter mas grande y mix busca el mas pequeño
Big = max(“Hello world”)
print(big)
w
Tiny = min(“Hello world”)
print(tiny)
--el espacio entre las dos palabras—
BUILDING OUR OWN FUNCTIONS
Creamos una nueva función usando def seguido de un parámetro opcional con
paréntesis.
Añadimos sangría en el cuerpo de la función
Define la función pero no ejecuta el cuerpo, solo lo almacena
ARGUMENTS
Un argumento es el valor que le asignamos a una función como la entrada cuando la
invocamos
Usamos argumento asi que podemos dirigir la función a diferentes trabajos cuando la
invocamos en momentos diferentes
Ponemos el argumento en paréntesis después del nombre de la función
Big = max(“hello world”)
PARAMETERS
Es una variable que usamos dentro de la definición de una función.
Es una “manilla” que le permite al código de la función acceder al argumento para una
determinada invocación de la función
RETURN VALUES
Usualmente una función toma un argumento y al correr return un valor, el valor de la
función invocada.
Una función “fructífera” es la que produce un resultado, a return value
El enunciado return termina la ejecución de la función y devuelve el resultado de la
función.
Def greet():
retunr “hello”
Print(greet() , “glenn”)
OUTPUT
hello glenn
Multiple parameter/arguments
Podemos definir mas de un parametro en la definicion de una function
Simplemente se añaden mas argumentos cuando invocamos la función
Pueden ser números
Def addtwo(a, b):
added=a+b
return added
X=addtwo(3, 5)
print(x)
LOOPS AND ITERATION
REPEATED STEPS
los loops tienen variables de iteracion que cambian a medida que corre el bucle.
Usualmente estas variable de iteración van a través de números
N=5
while n>0:
print(n)
n=n-1
print(“blastoff!”)
print(n)
INFINITE LOOPS
Una parte importante es la variable de iteración, y si esto no cambia a medida que
avanza el bucle entonces será infinito.
NO ES RECOMENDABLE PARA LOS DISPOSITIVOS
ANOTHER LOOP
Es parecido a if
N=0
while n>0:
print(“lather”)
print(“rinse”)
print(“dry off!”)
BREAKING OUT OF A LOOP
el enunciado break termina el loop y salta al enunciado que inmediatamente le sigue
al bucle. Out of the loop
es como un bucle de prueba que puede pasar en cualquier punto del cuerpo del bucle
while true:
line=input(“> ”)
if line == “done”:
break
print(line)
print(“done!”)
FINISHING AN ITERATION WITH CONTINUE
el enunciado continue termina la iteracion actual y salta al inicio del bucle y empieza la
iteracion siguiente. The top of the loop
SIMPLE DEFINITE LOOP
For i in [5, 4, 3, 2, 1]:
print(i)
print(“blastoff!”)
DEFINITIVE LOOP WITH STRINGS
Friends=[“joseph”, “glenn”, “sally”]
for friend in friends:
print(“happy new year:”, friend)
print(“done!”)
no confundir, python no entiende la diferencia entre plural y singular
LOOKING AT IN
la variable de iteración “itera” a través de la secuencia, en el orden del set
el bloque o cuerpo del código es ejecutado para cada valor in en la secuencia
la variable de iteración se mueve a través de todos los valores in en la secuencia
MAKING “SMART” LOOPS
el truco esta en saber algo del bucle completo cuando estas trancado escribiendo el un
código que solo ves cada vez que se ingresa
print(“before”)
for thing in [9, 41, 12, 3, 74, 15]:
print(thing)
print(“after”)
how to find the largest value
largest_so_far=-1
print(“before”, largest_so_far)
for the_num in [9, 41, 12, 3, 74, 15]:
if the_num > largest_so_far:
largest_so_far = the_num
print(largest_so_far, the_num)
print(“after”), largest_so_far)
COUNTING IN A LOOP
para contar cuantas veces ejecutamos un bucle, introducimos una variable que cuente
iniciando en cero y añadimos una cada vez que se corra el bucle.
zork=0
print(“before”, zork)
for thing in [9, 41, 12, 3, 74, 15]:
zork=zork+1
print(zor, thing9
print(“after”, zork)
SUMMING IN A LOOP
para añadir a un valor del bucle, introducimos una variable de suma que empiece en
cero y añadimos el valor a la suma cada vez que se corra el bucle
zork=0
print(“before”, zork)
for thing in [9, 41, 12, 3, 74, 15]:
zork=zork+thing
print(zork, thing)
print(“after”, zork)
FINDING THE AVERAGE IN A LOOP
el promedio combina las parejas de conteo y suma y divide cuando el bucle termina
count=0
sum=0
ptiny(“before”, count, sum)
for value in [9, 41, 12, 3, 74, 15]:
count=count+1
sum=sum+value
print(count, sum, value)
print(“after”, count, sum, sum/count)
FILTERING IN A LOOP
usamos el enunciado if en el bucle para filtrar los valores que estamos buscando
print(“before”)
for value in [9, 41, 12, 3, 74, 15]:
if value > 20:
print (“large number”, value)
print(“after”)
SEARCH USING A BOOLEAN VARIABLE
si solo queremos buscar y saber si se ha encontrado cierto valor, usamos una variable
que empiece con false y es luego cambiada a true tan pronto como sea hallado el valor
que queremos.
Found=false
print(“before”, found)
for value in [9, 41, 12, 3, 74, 15]:
if value==3:
found=true
print(found, value)
print(“after”, found)
how to find the smallest value
smallest = None
print("before")
for value in [9, 41, 12, 3, 74, 15]:
if smallest is None:
smallest = value
elif value < smallest:
smallest = value
print(smallest, value)
print("after:", smallest)
Tenemos otro tipo de variable, recuerde que tenía booleana, True y Falso, entero, punto
flotante. Hay una variable llamada Ninguno tipo, Ninguno. Sólo tiene una constante. Entonces
los booleanos tienen verdadero y falso, los enteros tienen un montón entero, y luego los
flotadores tienen un montón entero, y Ninguno los tipos tienen una cosa, Ninguno.
Is es mas “poderoso” que == porque significa exactamente igual
THE “IS” AND “IS NOT” OPERATORS
Python tiene un operador is que puede ser usando en expresiones logicas
Significa “es igual a”
Similar pero mas poderoso que ==
Is not también es un operador lógico