Przypisanie do zmiennej tę samą zmienną z indexem 0.

0
def next_block(the_file):
    """Zwróć kolejny blok danych z pliku kwiz."""
    category = next_line(the_file)

    question = next_line(the_file)

    answers = []
    for i in range(4):
        answers.append(next_line(the_file))

    correct = next_line(the_file)
    if correct:
        correct = correct[0]

    point = next_line(the_file)

    explanation = next_line(the_file)


    return category, question, answers, correct, point, explanation

Witam. Przykład w książce ma taką funkcję i w bloku funkcji jest instrukcja if correct - z tego co się nauczyłem to chyba znaczy if correct != 0??? Ale nie to mnie gryzie.
Dlaczego do zmiennej correct została przypisana ta sama zmienna correct z indexem 0?
Ten program odczytuje linie z pliku tekstowego i przypisuje je do zmiennych linijka po linijce. Wyjaśniłby mi ktoś o co chodzi z tym indeksem zmiennej correct???

1

EDIT:

Chyba wiem, jak bładze niech ktoś mnie poprawi.

Zmienne category, question, answers, correct, point i explanation są wypełniane kolejnymi liniami z pliku tekstowego przy pomocy funkcji next_line.

Zmienna correct przed instrukcją if

'correct = next_line(the_file)' pobiera linię z pliku i przypisuje ją do zmiennej correct.
Oznacza to, że correct jest obecnie całym ciągiem znaków pobranym z pliku, np. "2\n".

Instrukcja if correct

Sprawdza, czy correct nie jest pusty (czy zawiera jakąś wartość).

Tu mamy przypisywanie indeksu 0
correct = correct[0] przypisuje pierwszą literę pobranego ciągu znaków do zmiennej correct.
Jeśli correct wynosiło "2\n", to po tej instrukcji correct będzie wynosić "2".

correct = correct[0] przypisuje pierwszą literę pobranego ciągu znaków do zmiennej correct.
Jeśli correct wynosiło "2\n", to po tej instrukcji correct będzie wynosić "2".

W pliku tekstowym poprawna odpowiedź może być zapisana jako liczba lub litera (np. "1", "2", "A", "B"), być może nawet z końcem linii (znak nowej linii "\n"). Przypisanie correct = correct[0] zapewnia, że zmienna correct będzie tylko pierwszym znakiem tej linii, który najprawdopodobniej reprezentuje poprawną odpowiedź.

Instrukcja correct = correct[0] wyciąga pierwszy znak z linii tekstu pobranej jako poprawna odpowiedź, dzięki czemu zmienna correct zawiera tylko istotny znak, reprezentujący numer lub literę poprawnej odpowiedzi.

1

Ma to sens. Dziękuję

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.