• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Funkcja która zwraca sumę - Phyton

Cloud VPS
0 głosów
1,703 wizyt
pytanie zadane 4 listopada 2018 w Python przez ziomek7 Obywatel (1,060 p.)

Witam mam do napisania funkcję która zwraca sumę wzrostu (jest to trzeci element każdej pod listy) czemu poniższy kod nie chce działać? Czy może ktoś z was napisać gotowy kod i go wyjaśnić?

dane= [["m", 43, 177], ["m", 40, 180], ["m", 44.5, 170], ["m", 45, 184], ["m", 47, 190], ["m", 46, 185], 
                         ["m", 44, 180], ["m", 45, 180], ["m", 43, 183], ["m", 44.5, 184], ["m", 42, 174], ["m", 43, 173],
                         ["m", 45, 178], ["m", 43.5, 181], ["m", 44, 179], ["m", 41, 173], ["k", 37, 170], ["k", 41, 170], 
                         ["m", 43, 178]]


def suma(dane):
    for a in dane:
        i=0
        a = dane[i][2]
        suma = 0 + a
        i=i+1
    
print(suma)

 

2 odpowiedzi

+1 głos
odpowiedź 4 listopada 2018 przez Eryk Andrzejewski Mędrzec (164,260 p.)
wybrane 4 listopada 2018 przez ziomek7
 
Najlepsza

Pierwsza sprawa - jak chcesz wywołać funkcję, to musisz po jej nazwie podać nawiasy (i w nich argumenty funkcji, jeżeli jest taka potrzeba).

print(suma(dane))

A jak możesz napisać tę funkcję sumującą? O tak:

def suma(dane):
    wynik = 0
    for a in dane:
        wynik += a[2]
    return wynik

 

+1 głos
odpowiedź 4 listopada 2018 przez Benek Szeryf (93,190 p.)

Ja wiem, że Twoim zadaniem było napisane funkcji, ale normalnie to się wykorzystuje w Pythonie to, co jest dostępne (to taka wskazówka na przyszłość):

print(sum(map(lambda x : x[-1], dane)))

 

1
komentarz 4 listopada 2018 przez izonik Stary wyjadacz (12,560 p.)

Bardziej Pythonowo było by tak:

print(sum( item[-1] for item in dane ))

 

Podobne pytania

+2 głosów
3 odpowiedzi 334 wizyt
pytanie zadane 10 stycznia 2019 w Python przez driller Nowicjusz (180 p.)
0 głosów
1 odpowiedź 4,140 wizyt
pytanie zadane 24 października 2017 w C i C++ przez WRCol Nowicjusz (120 p.)
0 głosów
1 odpowiedź 318 wizyt
pytanie zadane 19 grudnia 2022 w Python przez daro22 Nowicjusz (120 p.)

93,456 zapytań

142,451 odpowiedzi

322,721 komentarzy

62,837 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...