Zadanie ze SPOJ, for, lista

0

Witam,

jestem bardzo początkująca w Pythonie 3 (tzn. ogólnie w Pythonie).
Wzięłam się za zadania ze strony SPOJ, nie na studia (nawet nie wiem czy gdzieś na jakiś studiach Python jest uczony), sama dla siebie.

Stanęłam na jednym z prostszych: http://pl.spoj.com/problems/RNO_DOD/

Mam na razie coś takiego:

tab_liczb=[]
tab_sum=[]
sum=0
liczba_zestawow=input()
for i in liczba_zestawow:
	liczba_liczb=input()
	for j in liczba_liczb:
		tab_liczb=map(int,input().split())
        for z in tab_liczb:
                sum=sum+tab_liczb[i]
        tab_sum[i]=sum
    
print (tab_sum)

nie podoba mi się pętla z "j", bo ona nie działa tak jak powinna. Liczby zapisują się do tab_liczb same, bez pomocy tej pętli, a powinny zapisać się tyle razy co "liczba_liczb".
Wiem, że jeśli zrozumiem to zadanie, to dam radę z innymi tego typu na SPOJ, dlatego zależy mi na zrozumieniu tego najprostszego.
Bardzo proszę o pomoc, o jakąś wskazówkę.

1

Input wczytuje tylko stringi (trzeba je przekonwertować na int), a żeby for wykonał się określoną ilość razy musisz użyć range. np

for i in range(liczba_zestawow):

A tu masz w pełny sprawny kod do analizy, bo kilka innych rzeczy też było do poprawki, w tym dodawanie liczb do tablicy

tab_liczb = []
tab_sum = []
suma = 0
liczba_zestawow = int(input())
for i in range(liczba_zestawow):
    suma = 0
    liczba_liczb = int(input())
    #for j in range(liczba_liczb):
    tab_liczb = input().split()
    tab_liczb = [int(x) for x in tab_liczb]
    #print(tab_liczb)
    for z in tab_liczb:
        suma = suma + z
    tab_sum.append(suma)


#tutaj za wynik będą podstawiane kolejne wartośći z tab_sum
for wynik in tab_sum:
    print(wynik)

ps najprostszym zadaniem będzie chyba http://pl.spoj.com/problems/PP0502B/

0

Jestem mile zaskoczona. Dziękuję za napisanie całego kodu.
Potrzebowałam chwili by to zrozumieć i o dziwo nie mam żadnych pytań. Wszystko jest jasne.
Musiałam doczytać na temat for, bo on inaczej jednak działa niż w C++.

Dziękuję

0

byłam niezalogowana i forum wpisało za mnie taką dziwną nazwę, ale to byłam ja z tymi podziękowaniami

4

mozesz troche prosciej

for _ in range(int(input())):
	input()
	print(sum(map(int, input().split())))

1 użytkowników online, w tym zalogowanych: 0, gości: 1