Pasamos un número como argumento y la función nos muestra la tabla de multiplicar de ese número.
def multiplica(n): # función sin return
for i in range(11):
print(f"{n} × {i:2} = {n*i:2}")
multiplica(5)
5 × 0 = 0 5 × 1 = 5 5 × 2 = 10 5 × 3 = 15 5 × 4 = 20 5 × 5 = 25 5 × 6 = 30 5 × 7 = 35 5 × 8 = 40 5 × 9 = 45 5 × 10 = 50
Calcular el área de un rectángulo dada la base y la altura.
def area(a, b):
return a * b
base = 10
altura = 5
print(f"El área de un rectángulo de base {base} y de altura {altura} es {area(base,altura)}.")
area(3, 4) # para calcular rápidamente el resultado de una función pasándole los argumentos
El área de un rectángulo de base 10 y de altura 5 es 50.
12
Es igual al área del círculo multiplicado por la altura.
El área del círculo es pi por el radio al cuadrado.
import math
def area_cilindro(radio, altura):
return (math.pi) * (radio**2) * altura # sobran estos paréntesis
area_cilindro(radio=2, altura=10)
125.66370614359172
Como datos se proporcionan los siguientes:
Se pueden dar tres casos:
De esta forma conseguiremos que cualquier número quede en el intervalo entre el mínimo y el máximo
[min, max]
def intervalo(n,min,max):
if n < min: return min
elif n > max: return max
else: return n # si no ponemos el else también funciona bien
numero = 24
min = 10
max = 20
intervalo(numero,min,max)
20
Programar la lógica del juego solo para una tirada de los jugadores A y B.
El jugador A elige la opción a, el jugador B elige la opción b.
def juega(a, b):
a = a.lower()
b = b.lower()
opciones = ['piedra', 'papel', 'tijeras']
if a not in opciones or b not in opciones: return f"Las opciones permitidas son {opciones}"
if a==b: return 'Empate'
elif (a=='papel' and b=='piedra') or \
(a=='piedra' and b=='tijeras') or \
(a=='tijeras' and b=='papel'): return "gana A"
else: return "gana B"
a = "Piedra"
b = "Papel"
juega(a, b)
'gana B'
Dada una lista de precios calcular la media.
def media(precios):
suma = 0
for precio in precios:
suma += precio
return round(suma/len(precios), 2) # redondeo a dos decimales
precios=[89, 92, 96, 98, 101, 95, 102, 102]
media(precios)
96.88
from statistics import mean # comprobación usando mean
mean(precios)
96.875
sum(precios)/len(precios) # comprobación sumando la lista y dividiendo entre su longitud
96.875
Dado un número sus divisores son todos aquellos números enteros menores que él que cumplan que la división es exacta.
El 1 es divisor de todos los números, por eso no le incluimos en la lista.
def divisores(n):
lista=[]
for i in range(2,n):
if n%i==0:
lista.append(i)
if len(lista)==0: return "Es primo"
else: return lista
numero = 120
divisores(numero)
[2, 3, 4, 5, 6, 8, 10, 12, 15, 20, 24, 30, 40, 60]
Generar una lista con 12 números aleatorios entre 10 y 30, ambos incluidos, sin repetición y separarla en una lista de pares y otra de impares, ordenados.
from random import sample
l = sample(range(10,31), 12)
print(l)
def separa(l):
l.sort()
pares = []
impares = []
for n in l:
if n%2: impares.append(n) # la condición no es una igualdad ya que si da 1 se entiende que es True
else: pares.append(n)
return pares,impares
pares, impares = separa(l) # recogemos la tupla de listas que devuelve el return
print(pares)
print(impares)
[26, 24, 11, 23, 14, 29, 22, 12, 21, 25, 16, 28] [12, 14, 16, 22, 24, 26, 28] [11, 21, 23, 25, 29]
Crear una función que diga si un número es par.
En el propio return
se puede meter una condición y nos ahorramos poner un if
.
def es_par(n):
return n%2==0
es_par(4)
True