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

Python - użycie funkcji sum()

Object Storage Arubacloud
+1 głos
1,649 wizyt
pytanie zadane 3 marca 2020 w Python przez Czesc Początkujący (430 p.)

Cześć. Ćwiczę sobie pythona od jakiegoś czasu. Mam taką całkiem niezłą stronę, na której ludzie zamieszczają zadania. Bezpośrednio na stronie z zadaniem, mogę napisać program (rozwiązanie), i jest to od razu testowane, czy wszystko poprawnie działa.

No i pojawia się problem. Wybrałem sobie zadanie, napisałem rozwiązanie, ale interpreter wywala mi błąd. Zdziwiło mnie to, więc skopiowałem mój kod z tej strony do PyCharma. Tam już działa bez zarzutu. Na stronie dostaję:

TypeError: 'int' object is not iterable

 

Oto kod:

def goals(laLiga, copaDelRey, championsLeague):
    return sum(laLiga) + sum(copaDelRey) + sum(championsLeague)

dokładnie to samo wkleiłem w PyCharma, dopisałem jednak jedną linijkę, ponieważ na stronie wartości są predefiniowane. Mianowicie:

goals(laLiga=(10, 40, 12), copaDelRey=(21, 61, 22), championsLeague=(10, 4, 13))

 

A, no i jak się program uruchomił bez błędów, to zmieniłem return na print. Wyświetliło poprawny wynik.
Ma ktoś jakieś pomysły dlaczego w jednym miejscu wszystko działa perfekcyjnie, a w drugim już nie?

Dzięki z góry :)

1 odpowiedź

+2 głosów
odpowiedź 3 marca 2020 przez DawidK Nałogowiec (37,910 p.)
wybrane 4 marca 2020 przez Czesc
 
Najlepsza
Zadanie masz pewnie z codewars albo podobnej strony, powinno tam być napisane w sensie w treści zadania, w jakiej formie są dane wejściowe. Błąd pojawia się ponieważ chcesz zsumować pojedynczą wartość int
komentarz 3 marca 2020 przez Czesc Początkujący (430 p.)
Okej, czyli o ile dobrze rozumiem, to najprawdopodobniej w jednym z testów do zadania jest wklepana pojedyncza wartość, a nie cały array? I dlatego python próbuje iterować nie po kolejnych liczbach, a po znakach w jednej liczbie, a tego z kolei nie może zrobić z intem, tak?

Zadanie jest z codewars, ale obecnie nie mam jak sprawdzić jak dokładnie wyglądają te wartości.

Dzięki za odpowiedź :)
2
komentarz 3 marca 2020 przez DawidK Nałogowiec (37,910 p.)
Tak, prawdopodobnie na wejściu jest gdzieś wartość int. sum() nie będzie iterować po znakach w jednej liczbie np sum(100000) również nie zadziała. sum() musi przyjąć za parametr coś po czym może iterować: liste, krotkę, słownik i zawiera inty.

Podobne pytania

0 głosów
1 odpowiedź 170 wizyt
pytanie zadane 8 kwietnia 2020 w Python przez Kubs Mądrala (5,190 p.)
–1 głos
1 odpowiedź 387 wizyt
pytanie zadane 25 stycznia 2020 w Python przez Sic Dyskutant (8,510 p.)
0 głosów
1 odpowiedź 147 wizyt
pytanie zadane 5 kwietnia 2019 w Python przez niezalogowany

92,565 zapytań

141,416 odpowiedzi

319,596 komentarzy

61,948 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...