Presentación de datos por pantalla
Lectura de datos desde teclado
Flujo del programa
Python: programación estructurada
sentencias simples
Amparo Varona Fernández
Departamento de Electricidad y Electrónica
Facultad de Ciencia y Tecnologı́a, UPV/EHU
[email protected] septiembre-diciembre
1/23
AVF Programación estructurada
Presentación de datos por pantalla
Lectura de datos desde teclado
Flujo del programa
Indice
1. Presentación de datos por pantalla
2. Lectura de datos desde teclado
3. Flujo del programa
3.1. sentencias condicionales
3.2. sentencias iterativas
2/23
AVF Programación estructurada
Presentación de datos por pantalla
Lectura de datos desde teclado
Flujo del programa
Imprimir datos por pantalla
En Python se imprime por pantalla mediante al función print
>>> help ( print )
Help on built - in function print in module builtins :
print (...)
print ( value , ... , sep = ’ ’ , end = ’\ n ’ , file = sys .
stdout )
Prints the values to a stream , or to sys . stdout by
default .
Optional keyword arguments :
file : a file - like object ( stream ) ; defaults to the
current sys . stdout .
sep : string inserted between values , default a
space .
end : string appended after the last value ,
default a newline .
3/23
AVF Programación estructurada
Presentación de datos por pantalla
Lectura de datos desde teclado
Flujo del programa
Imprimir datos por pantalla
>>> a =4
>>> print ( " el resultado es : " ,a )
el resultado es : 4
>>> print ( " el resultado es " , a , sep = ’= ’)
el resultado es =4
>>> print ( int )
< class ’ int ’ >
>>> print ( abs )
< built - in function abs >
>>> print (3==4)
False
>>> print ( a ==4)
True
>>>
4/23
AVF Programación estructurada
Presentación de datos por pantalla
Lectura de datos desde teclado
Flujo del programa
Lectura de datos
>>>
>>> print ( " escribe un numero " )
escribe un numero
>>> a = input ()
56
>>> print ( a )
56
>>> type ( a )
< class ’ str ’ >
>>> a = int ( input () )
56
>>> type ( a )
< class ’ int ’ >
>>> b = float ( input () )
5.89
>>> type ( b )
< class ’ float ’ >
5/23
AVF Programación estructurada
Presentación de datos por pantalla
Lectura de datos desde teclado
Flujo del programa
Lectura de datos
>>> a = int ( input ( " escribe un numero " ) )
escribe un numero56
>>> a = int ( input ( " escribe un numero " ) )
escribe un numero 56
>>> a = int ( input ( " escribe un numero " ) )
escribe un numero 5.6
Traceback ( most recent call last ) :
File " < pyshell #43 > " , line 1 , in < module >
a = int ( input ( " escribe un numero " ) )
ValueError : invalid literal for int () with base 10: ’
5.6 ’
>>>
6/23
AVF Programación estructurada
Presentación de datos por pantalla
sentencias condicionales
Lectura de datos desde teclado
sentencias iterativas
Flujo del programa
Sentencias condicionales
Se van a ejecutar ciertos bloques de código según se cumplan o no
determinadas condiciones.
if condicion :
sentencias
if condicion :
sentencias_1
else :
sentencias_2
if condicion_1 :
sentencias_1
elif condicion_2 :
sentencias_2
7/23
AVF Programación estructurada
Presentación de datos por pantalla
sentencias condicionales
Lectura de datos desde teclado
sentencias iterativas
Flujo del programa
Sentencias condicionales
x = int ( input ( " escribe un numero entero positivo " ) )
if x <3:
print ( " el valor de x es menor que 3 " )
elif x <6:
print ( " el valor de x esta entre 3 y 6 " )
elif x <9:
print ( " el valor de x esta entre 6 y 9 " )
else :
print ( " el valor de x es mayor o igual que 9 " )
8/23
AVF Programación estructurada
Presentación de datos por pantalla
sentencias condicionales
Lectura de datos desde teclado
sentencias iterativas
Flujo del programa
Operadores de comparación
X == Y # devuelve verdadero si X es igual a Y
X != Y # devuelve verdadero si X es distinto a Y
X > Y # devuelve verdadero si X es mayor que Y
X < Y # devuelve verdadero si X es menor que Y
X >= Y # devuelve verdadero si X es mayor o igual que Y
X <= Y # devuelve verdadero si X es menor o igual que Y
Operadores de comparación
X >2 and Y >7 # verdadero cuando ambas condiciones son
verdaderas
X >2 or Y >7 # verdadero cuando una de las condiciones es
verdadera
not x >= y # verdadero cuando x es menor que y
9/23
AVF Programación estructurada
Presentación de datos por pantalla
sentencias condicionales
Lectura de datos desde teclado
sentencias iterativas
Flujo del programa
Ejemplo
x = int ( input ( " escribe un numero entero positivo " ) )
y = int ( input ( " escribe un numero entero positivo " ) )
z = int ( input ( " escribe un numero entero positivo " ) )
if x < y and y < z :
p ,s , t =x ,y , z
if z < y and y < x :
p ,s , t =z ,y , x
if y < x and x < z :
p ,s , t =y ,x , z
if z < x and x < y :
p ,s , t =z ,x , y
if x < z and z < y :
p ,s , t =x ,z , y
if y < z and z < x :
p ,s , t =y ,z , x
print (p ,s , t )
¿Se puede mejorar la solución? 10/23
AVF Programación estructurada
Presentación de datos por pantalla
sentencias condicionales
Lectura de datos desde teclado
sentencias iterativas
Flujo del programa
Ejemplo
x = int ( input ( " escribe un numero entero positivo " ) )
y = int ( input ( " escribe un numero entero positivo " ) )
z = int ( input ( " escribe un numero entero positivo " ) )
p ,s , t =x ,y , z
if p > s :
p , s =s , p
if p > t :
p , t =t , p
if s > t :
s , t =t , s
print (p ,s , t )
¿Se puede mejorar la solución?
11/23
AVF Programación estructurada
Presentación de datos por pantalla
sentencias condicionales
Lectura de datos desde teclado
sentencias iterativas
Flujo del programa
Expresiones condicionales
Muy frecuentemente es necesario asignar un valor A a una variable cuando se
cumple un cierta condición y un valor B cuando no se cumple
if p ==1:
z =10
else :
z =30
En Python este patrón se puede resumir en la siguiente expresión condicional
z =(10 if p ==1 else 30)
De modo que la sintaxis de una expresión condicional es:
(valor1 if condicion else valor2 )
donde el resultado es valor1 si la condición=True o valor2 si la condición=False
12/23
AVF Programación estructurada
Presentación de datos por pantalla
sentencias condicionales
Lectura de datos desde teclado
sentencias iterativas
Flujo del programa
Ejercicios
◦ Diseñar un programa que devuelva el máximo de cuatro números
◦ Diseñar un programa que tome tres valores de entrada, y muestre por
pantalla si uno de ellos es igual a la suma de los otros dos.
◦ Diseñar un programa que tome tres longitudes de entrada y nos diga si se
puede construir un triángulo con varitas de esas longitudes.
13/23
AVF Programación estructurada
Presentación de datos por pantalla
sentencias condicionales
Lectura de datos desde teclado
sentencias iterativas
Flujo del programa
Sentencias iterativas: ciclos
Se trata de repetir una tarea un número prefijado de veces o hasta que se
cumpla cierta condición
Python tiene dos tipos de ciclos:
◦ for: cuando se conoce de antemano el número de veces que se ha de
repetir el ciclo
◦ while: cuando no se conoce de antemano el número de veces que se va a
repetir; en este caso se debe conocer la condición de parada
14/23
AVF Programación estructurada
Presentación de datos por pantalla
sentencias condicionales
Lectura de datos desde teclado
sentencias iterativas
Flujo del programa
Ciclo while
x =4 >>>
while x >0: 4 16
ic = x **2 3 9
print (x , ic ) 2 4
x =x -1 1 1
>>>
15/23
AVF Programación estructurada
Presentación de datos por pantalla
sentencias condicionales
Lectura de datos desde teclado
sentencias iterativas
Flujo del programa
Ciclo while
0.265077652566
0.589876655231
from random import random
0.325647887592
x =0.5
0.137832548735
while x <0.6:
0.558475234583
x = random ()
0.502389732499
print ( x )
0.528394593689
print ( " fin " )
0.128745328957
0.722839470734
fin
16/23
AVF Programación estructurada
Presentación de datos por pantalla
sentencias condicionales
Lectura de datos desde teclado
sentencias iterativas
Flujo del programa
Ciclo for
>>>
for i in [0 ,1 ,2 ,3]: 0 0
ic = i **3 1 1
print (i , ic ) 2 8
3 27
>>>
for i in [3 ,1 ,4 ,1 ,5 ,9 ,2 ,6 ,5 ,3]:
print ( " un digito de pi es " , i )
for i in [3 ,1 ,4 ,1 ,5 ,9]+[2 ,6 ,5 ,3]:
print ( i )
for i in " estas son palabras al azar " . split () :
print ( i )
17/23
AVF Programación estructurada
Presentación de datos por pantalla
sentencias condicionales
Lectura de datos desde teclado
sentencias iterativas
Flujo del programa
La función range
La función range se usa para iterar sobre una secuencia de números
>>>
0
1
for i in range (5) :
2
print ( i )
3
4
>>>
range (5 , 10)
5 hasta 9
range (0 , 10 , 3)
0, 3, 6, 9
range ( -10 , -100 , -30)
-10 , -40 , -70
18/23
AVF Programación estructurada
Presentación de datos por pantalla
sentencias condicionales
Lectura de datos desde teclado
sentencias iterativas
Flujo del programa
Ciclo for
>>>
for i in range (4) :
0 0
ic = i **3
1 1
print (i , ic )
2 8
3 27
>>>
>>>
for i in range (2 ,7 ,2) :
2 8
ic = i **3
4 64
print (i , ic )
6 216
>>>
19/23
AVF Programación estructurada
Presentación de datos por pantalla
sentencias condicionales
Lectura de datos desde teclado
sentencias iterativas
Flujo del programa
Ejemplo
x = int ( input ( " escribe un numero entero " ) )
y = int ( input ( " escribe un numero entero " ) )
prod =0
while y >0:
prod = prod + x
y =y -1
---------------------------------
for i in range ( y ) :
prod = prod + x
print ( prod )
¿Se puede mejorar la solución?
20/23
AVF Programación estructurada
Presentación de datos por pantalla
sentencias condicionales
Lectura de datos desde teclado
sentencias iterativas
Flujo del programa
break y continue
break
La instrucción break interrumpe un ciclo for o while
from random import random
i ,s , limit =0 , 0.0 , 15.0
while s < limit : # termina si s >= limit
s = s + random ()
i = i +1
if i >30:
break # tambien termina si i >30
print ( s )
21/23
AVF Programación estructurada
Presentación de datos por pantalla
sentencias condicionales
Lectura de datos desde teclado
sentencias iterativas
Flujo del programa
continue
La instrucción continue hace que un ciclo for o while salte a la iteración
siguiente
1 2
for i in range (15) : 3 4
if i %2==0: 5 6
continue 7 8
print (i , i +1) 9 10
11 12
13 14
22/23
AVF Programación estructurada
Presentación de datos por pantalla
sentencias condicionales
Lectura de datos desde teclado
sentencias iterativas
Flujo del programa
Ejercicios
◦ Diseñar un programa que devuelva el cociente y el resto de una divison
entera suponiendo que no tenemos los operadores de división (//) y de
resto( %)
◦ Diseñar un programa para obtener el máximo común divisor según el
algoritmo de Euclides
◦ Diseñar un programa para calcular la potencia de dos números suponiendo
que no disponemos del operador **
23/23
AVF Programación estructurada