domingo, 1 de julio de 2018

Máximo y mínimo en Python

Reto: Máximo y mínimo

Generar 10 números aleatorios y calcular el máximo y el mínimo.




Método 1

Generamos una lista de 10 números aleatorios enteros entre 1 y 100. Para calcular el máximo y el mínimo usamos las funciones max y min que ya están implementadas en Python. Este es el método 1 que probablemente sea el más sencillo pero nuestro objetivo es aprender a obtener los extremos usando algún algoritmo. Por este motivo, vamos a mostrar algún método más, que siempre es interesante por su contenido formativo.

from random import randint
lista=[]
for i in range(10):
  w=randint(1, 100)
  lista.append(w)
print(lista)
print('Máximo:',max(lista))
print('Mímino:',min(lista))


Método 2

Generamos un lista con 10 números aleatorios. Definimos las variables maxi y mini que calcularan el máximo y el mínimo. Las inicializamos con el primer elemento de la lista. Con un bucle for y un condicional if vamos detectando el mayor y el menor de los valores, para finalmente imprimirlos.

from random import randint
x=0
lista=[]
while x<10:
  w=randint(1, 100)
  lista.append(w)
  x+=1
print(lista)
maxi=lista[0] #inicializamos el máximo con el primer elemento de la lista
mini=lista[0] #inicializamos el mínimo con el primer elemento de la lista
for i in range (10):
  if lista[i]>=maxi:
    maxi=lista[i]
  elif lista[i]<=mini:
    mini=lista[i]
print('El mayor es:',maxi)
print('El mmenor es:',mini)


Método 3

En este caso no trabajamos con una lista sino directamente con números que vamos imprimiendo y de los que vamos calculando su máximo y su mínimo .

from random import randint
maxi=0
mini=100
for i in range(10):
  x=randint(1, 100)
  print(x)
  if x>=maxi:
    maxi=x
  elif x<=mini:
    mini=x
print('El mayor es: ',maxi)
print('El menor es: ',mini)


Método 4

Este método es similar al anterior si bien el cálculo del máximo y el mínimo no se realiza usando un condicional if sino que usamos las funciones max y min del propio Python.

from random import randint
maxi=0
mini=100
for i in range(10):
  x=randint(1, 100)
  print(x)
  maxi=max(maxi,x)
  mini=min(mini,x)
print('El mayor es:',maxi)
print('El menor es:',mini)


Método 5

Creamos una lista que se basa en obtener una muestra de 10 elementos sin repetición elegidos de forma aleatoria entre los cien que contiene el rango que va entre 0 y 99. Imprimimos la lista desordenada, luego la ordenamos y la volvemos a imprimir ya ordenada. Para mostrar el mínimo y el máximo únicamente tenemos que elegir el primer y último elemento de la lista ordenada.

import random
L=random.sample(range(100),10)
print(L)
L.sort() #se ordena la lista
print(L)
print('Máximo:',L[9])
print('Mínimo:',L[0])


3 comentarios:

  1. Hola tengo una duda necesito hacer un programa de una busqueda de maximo y minimo local en una lista de numeros. Me podrías ayudar y decirme como seria. Gracias.

    ResponderEliminar
  2. from random import randint

    def max_min():
    num_arr = []

    for i in range(10):
    num = randint(1, 10)
    num_arr.append(num)

    print('los numeros son: ',num_arr)
    num_arr.sort()

    print('el numero minimo es: ', num_arr[0])
    print('el numero maximo es: ', num_arr[9])

    max_min()

    ResponderEliminar
  3. hola necesito ayuda con un progama que usa def la cuestion es que el ejercicio consiste en ingresar un numero y ver si es mayor o menor al maximo que ya esta cargado en el sistema..queria saber si me podrias ayudar y decirme como seria.

    Responder

    ResponderEliminar