Ya vimos que los strings son una secuencia de caracteres, cuando hablamos de listas podemos hablar de secuencias de cualquier cosa, por ejemplo listas de números, listas de strings, listas de objetos mas complejos con tipos propios etc.
Una lista es una secuencia de elementos, para crearlas usamos corchetes [] o con la función list, por ejemplo:
Las listas se pueden acceder a través de indices, éstos indices inician en cero (0)
amigos =list()numeros =[1,2,3,4,5]
Las listas son mutables, para añadir elementos a una lista podemos utilizar el método append
Las listas se pueden acceder con indices, que inician en cero.
En Python 3 el operador / nos devuelve un float (valor con decimales).
Si queremos que nos de un int (número entero) debemos usar el operador //
¡Justo es lo que noté! Aquí dejo la captura de pantalla:
En la última ejecución utilicé el operador //
En python 2 otra manera es declarar el acumulador como un float (Ej: avg = 0.0) y automaticamente la suma se convierte en float
myGirlFriends = []
:v
Recuerda que en Python no usamos camelCase. Usar snake_case quizás haga crecer esa lista ;)
gracias por la recomendación
Para que no quede un reguero de decimales al trabajar con un float, podemos darle formato para que muestre X cantidad de decimales de la siguiente manera:
def promedio(temperaturas): suma_de_temperaturas=0for temperatura intemperaturas: suma_de_temperaturas +=float(temperatura) promedio = suma_de_temperaturas/len(temperaturas)return promedio
if __name__ =='__main__': temperaturas =[18,20,16,21,19,21] promedio=promedio(temperaturas)print('Las temperaturas son: {}'.format(temperaturas))print('La temperatura promedio es de: {0:.3f}'.format(promedio))# <-- aquí está el formato
Y aquí les dejo más información
Puedes también utilizar la función “round()”
Buen aporte
Para definirlo a solo dos decimales:
print('La Temperatura promedio es: {}'.format(round(average,2)))```
Gracias por el aporte.
Excelente gracias!
Otra forma de hacerlo
<def list_average(lista):returnsum(lista)// len(lista)if __name__ =="__main__": lista =[18,55,96,35,12,74,45] resultado =list_average(lista)print(f'El promedio de la lista es: {resultado}')>
Gracias Platzi, Gracias ministerio de la TIC, Gracias David Aroesti
En python 3 ya se puede divir enteros y obtener floats
Dejo como aporte este artículo sobre las diferencias entre Python 2 y 3, para que puedan profundizar ;)
Creo que me emocioné con este.
Este programa le pide 5 mediciones de temperatura al usuario, confirma que se traten de números y luego los promedia.
Espero le sea útil a alguien y las observaciones y recomendaciones son muy bienvenidas, gracias.
Tengo una duda para que se utiliza este if es que veo que en todos los cursos de aqui nadie mas que tu lo usa y me da curiosidad saber para que sirve disculpa soy nuevo en python
if name == ‘main’:
main()
Se usa para que el interprete de python ejecute todas las funciones al momento de cargar el módulo, su no se usara, tienes por ejemplo que definir las funciones antes de llamarlas al usar el
if __name__ =='__main__':
En este curso lo vez bastante ya que el profesor enseña con muchos scripts.
con if name == ‘main’: estás estableciendo un punto de partida, es ahi donde Python va a empezar a leer el codigo.
Sé que se siente anti logico, porque normalmente pensamos que el codigo comienza a leerse desde la linea uno hacia abajo. Pero con ésta forma puedes iniciar tu codigo en la linea que sea y a partir de ahí vas llamando a tus funciones (funciones que incluso están por arriba del if name == ‘main’😃.
puedes aprovechar ahi para declarar algunas variables que se vayan a usar en otras funciones, entre otras cosas.
Pasó un año de tu pregunta asi que probablemente ya hayas solucionado tu duda pero de todos modos espero ayudar a alguien más que no lo tenga claro. Saludos
es muy similar a un array
Sí, algunos los llaman arrayList
si se puediera denominar array claro es muy parecido a un vector xD
con un loop while para pedir temperaturas hasta que se quiera, se puede cerrar el ciclo indicando que no se desea ingresar mas información
¡Hola @jairolopez88! Puedes prescindir de la línea
# -*- coding: utf-8 -*-
ya que Python 3 admite Unicode por defecto ;)
Para poder reducir la cantidad de decimales en el float al momento de usar .format en los corchetes agregar este comando 0:.2f para tomar la cantidad de decimales que quieras solo cambia el 2 por la N cantidad de decimales que requieras
print('La temperatura promedio es: {0:.2f}'.format(average))>>>24.53
Gracias por el aporte astroamat. Me hizo recordar el lenguaje C.
Para python 3.X se puede usar este formato de salida
{0:.3f}--> el numero 3 es numero de decimales
Buenas tardes, alguien que me recuerde ¿por qué puso +=? ¿Qué significado tiene?
Agradezco su colaboración
Andrés
a = a +1
es lo mismo que
a +=1
Lo que hace es simplificar el trabajo de escribir prueba = prueba + 1
de tal manera que solo debes escribir prueba += 1
.append() no funciona en python 3.7 ¿cual seria la opción para reemplazar esto?
Algo debes estar colocando mal, revisa el codigo. La funcion append() esta hablitada para python 3.x
Mi aportación para la temperatura promedio de los días de la semana
# -*- coding: utf-8-*-def average_temps(temps): suma_of_temps =0;for temp intemps: suma_of_temps += temp
return suma_of_temps /len(temps)if __name__ =='__main__': temps =[] dias =['Lunes','Martes','Miercoles','Jueves','Viernes','Sabado','Domingo'] i =0while i <=6: word =int(input('Escribe la temperatura del dia {}: '.format(dias[i]))) temps.append(word) i = i +1 average =average_temps(temps)print('La temperatura promedio es: {}'.format(average))
Podemos inicializar nuestras listas de dos formas: o bien utilizamos dos corchetes vacíos [] o utilizamos la palabra reservada list()
Una de las maneras para agregar elementos a una lista es con el metodo .append
Por acá mi código que modifique un poco para que el usuario sea el que vaya agregando las temperaturas a las que le quiere sacar la temperatura:
# Agregamos temperaturas a nuestra lista
def addNewTemp(temps): again =1while again ==1: temps.append(float(input('Ingrese una temperatura: '))) again =int(input('Ingresa 1 si deseas agregar otra temperatura o cualquier otro si deseas finalizar: '))# Sacamos el promedio de temperatura
def average_temps(temps): sum_of_temps =0for temp intemps: sum_of_temps += temp
return sum_of_temps /len(temps)if __name__ =='__main__': temps =[]addNewTemp(temps) average =average_temps(temps)print('La temperatura promedio es: {}'.format(average))
Tiene mejor rendimiento el definir listas vacías usando [] y diccionarios usando {} que si se definen con list() y dict() respectivamente.
Excelente dato @GOLLUM23, tuve un debate con un colega por ese tema jajaja.
Este es un pequeño cambi que realice, preguntando cuantas temperaturas quiere promediar e ingresando cada una
"""Es como un array unidimensional.Se pueden guardar diferentes valores.Se expande dinamicamente."""
miLista=['nombre1','nombre2','nombre3','nombre4','nombre5']print(miLista[2]) #Elemento posicion 2.print(miLista[-2]) #Elemento posicion -2.print(miLista[:]) #todos los elementos.print(miLista[2:]) #todos los elementos del 2 al final.(Porciones)print(miLista[1:3]) #todos los elementos del 1 al 3 pero excluye el 3.(Porciones)print(miLista[:3]) #todos los elementos del 0 al 3 sin excluir el 3.(Porciones)miLista.append("nombre6") #inserta al final.print(miLista[:]) #todos los elementos.miLista.insert(2,'Nuevo') #inserta un elemento en la posicion 2, los demas se mueven.print(miLista[:]) #todos los elementos.nuevaLista=['nueva1','nueva2','nueva3']miLista.extend(nuevaLista) #inserta una lista al final de la lista.print(miLista.index('nueva1')) #devuelve la posicion de la primera coincidencia.print('pepe'in miLista) #devuelve valor voleano por si existe o no el elemento dentro de la lista.miLista.remove('nueva1') #elimina un elemento
miLista.pop() #elimina el ultimo elemento
lista3=miLista+nuevaLista #unir dos listas
miLista=['nombre1','nombre2','nombre3','nombre4','nombre5']*2 #repite los elementos 2 veces
Asi fue como me dio en valor entero para python3
<def average_temps(temps): sum_of_temps =0for temp intemps: sum_of_temps += temp
returnint( sum_of_temps /len(temps))if __name__ =='__main__': temps =[21,24,24,22,20,23,24] average =average_temps(temps)print(' la temperatura promedio es: {}'.format(average))>