Pobieranie liczb w aplikacji konsolowej w sekwencji

0

Dzień dobry, nie działa mi split(), wyskakuje mi błąd, mam taki kod:

def wejscie(a):
    lista = []
    for _ in range(a-2):
        b = input().split()
        lista.append(int(b[0]))
        lista.append(int(b[1]))
    return lista
a = int(input())
lista_wszystkich = []
for i in range(a):
    d = int(input())
    lista_wszystkich += [wejscie(d)]
print(lista_wszystkich)

możecie powiedzieć co jest nie tak?

0

A jaki błąd wyskakuje?

Pewnie chodzi o to, że nie wprowadziłeś separatora jako argument split().

1

Jakie pytanie, taka odpowiedź — kod jest nie tak. Jak chcesz sensownej odpowiedzi, to sformatuj kod, żeby można było stwierdzić, jak jest wykonywany — w Pythonie wcięcia mają znaczenie — i podziel się samym błędem oraz danymi wejściowymi, przy których występuje…

1
M-S michii04 napisał(a):

Dzień dobry, nie działa mi split(), wyskakuje mi błąd, mam taki kod:

Prawdopodobnie źle używasz programu, bo wpisujesz niepoprawne wartości podczas uruchomienia.

Błąd jaki możesz dostać to pewnie coś jeden z tych dwóch:

Traceback (most recent call last):
  File "C:\Users\Riddle\PycharmProjects\crlf\file.py", line 14, in <module>
    d = int(input("Podaj kolejną ilość (int):"))
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: invalid literal for int() with base 10: '30 40'
  File "C:\Users\Riddle\PycharmProjects\crlf\file.py", line 6, in wejscie
    lista.append(int(b[1]))
                     ~^^^
IndexError: list index out of range

Ja uruchomiłem ten program, i działa dobrze:

C:\Users\Riddle\PycharmProjects\crlf> python .\file.py
Podaj ilośc a (int):3
Podaj kolejną ilość (int):4
Podaj dwie liczby od spacji (int, int): 10 20
Podaj dwie liczby od spacji (int, int): 30 40
Podaj kolejną ilość (int):5
Podaj dwie liczby od spacji (int, int): 10 20
Podaj dwie liczby od spacji (int, int): 30 40
Podaj dwie liczby od spacji (int, int): 50 60
Podaj kolejną ilość (int):3
Podaj dwie liczby od spacji (int, int): 20 30
[[10, 20, 30, 40], [10, 20, 30, 40, 50, 60], [20, 30]]

Spróbuj dodać pomocne tytuły do promptów, i wtedy stanie się wszystko jasne

def wejscie(a: int) -> list[int]:
    lista = []
    for _ in range(a - 2):
        b = input("Podaj dwie liczby od spacji (int, int): ").split()
        lista.append(int(b[0]))
        lista.append(int(b[1]))
    return lista
a = int(input("Podaj ilość (int): "))
lista_wszystkich = []
for i in range(a):
    d = int(input("Podaj kolejną ilość (int): "))
    lista_wszystkich += [wejscie(d)]
print(lista_wszystkich)
0

juz mi działa, problem był ze środowiskiem w którym dopiero zacząłem pisać, dziękuje za pomoc

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