encontrar el número máximo en una lista usando un bucle

Así que tengo esta lista y variables:

nums = [14, 8, 9, 16, 3, 11, 5] big = nums[0] spot = 0 

Estoy confundido sobre cómo hacerlo realmente. ¡Por favor ayuda! Soy nuevo en Python y quiero usar este ejercicio para darme un iniciador. Quiero comenzar con “repetir la longitud de la lista” como en Scratch o BYOB, pero ¿cómo hago eso en Python?

Por lo general, solo puedes usar

 max(nums) 

Si explícitamente desea utilizar un bucle, intente:

 max_value = None for n in nums: if n > max_value: max_value = n 
 nums = [14, 8, 9, 16, 3, 11, 5] big = None spot = None for i, v in enumerate(nums): if big is None or v > big: big = v spot = i 

Aqui tienes…

 nums = [14, 8, 9, 16, 3, 11, 5] big = max(nums) spot = nums.index(big) 

Esta sería la forma pythonica de lograr esto. Si desea utilizar un bucle, haga un bucle con el valor máximo actual y verifique si cada elemento es más grande, y si es así, asigne el máximo actual.

¿Por qué no simplemente usando la función max () incorporada?

 >>> m = max(nums) 

Por cierto, algunas respuestas a preguntas similares podrían ser útiles:

  • ¿Una forma pythonica de encontrar el valor máximo y su índice en una lista?
  • ¿Cómo encontrar todas las posiciones del valor máximo en una lista?

Para abordar su segunda pregunta, puede usar un bucle for :

 for i in range(len(list)): # do whatever 

Debe tener en cuenta que el range() puede tener 3 argumentos: start , end y step . Inicio es con qué número comenzar (si no se proporciona, es 0); inicio es inclusivo. Final es donde terminar (esto tiene que ser dado); end es exclusivo: si lo haces en el range(100) , te dará 0-99. El paso también es opcional, significa qué intervalo usar. Si no se proporciona el paso, será 1. Por ejemplo:

 >>> x = range(10, 100, 5) # start at 10, end at 101, and use an interval of 5 >>> x [10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95] # note that it does not hit 100 

Como el end es exclusivo, para incluir 100, podríamos hacer:

 >>> x = range(10, 101, 5) # start at 10, end at 101, and use an interval of 5 >>> x [10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100] # note that it does hit 100 

Python ya tiene una función incorporada para este tipo de requisitos.

 list = [3,8,2,9] max_number = max(list) print max_number # it will print 9 as big number 

sin embargo, si encuentra el número máximo con los clásicos, puede utilizar bucles.

 list = [3,8,2,9] current_max_number = list[0] for number in list: if number>current_max_number: current_max_number = number print current_max_number #it will display 9 as big number 
 scores = [12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 31, 31, 37, 56, 75, 23, 565] # initialize highest to zero highest = 0 for mark in scores: if highest < mark: highest = mark print(mark)