None, brak wartości i wartości puste

Preview Mode

You're viewing this material in preview mode. Sign up to track your progress and access all features.

None, brak wartości i wartości puste
Required In Progress

Python • kurs podstawowy • lekcja 05

None, brak wartości i wartości puste

Przed pierwszą rundą wynik może być nieznany.

Twój cel: Odróżnisz nieustalony wynik od zera, pustego napisu i False.

Typy int, str i bool.

Co ma zrobić program?

Po rozegranej rundzie może wynosić zero. To dwie różne informacje. None jest specjalną wartością używaną do oznaczania braku konkretnego wyniku — nazwa przypisana do None istnieje.

Znaczenie braku ustala projekt programu. W naszym przykładzie score = None oznacza „jeszcze nie grano”, a score = 0 „grano, zdobyto zero”. Pusty napis "" jest tekstem o długości zero. False jest wartością logiczną, np. odpowiedzią na pytanie „czy zakończono grę?”.

print() bez argumentów albo print("") daje pustą linię. Nie oznacza to, że instrukcja się nie wykonała. Aby zobaczyć pusty napis, umieścimy go między znacznikami wypisywanymi osobnymi argumentami print().

Przewidź przed uruchomieniem

score = None
print(score)
score = 0
print(score)
print("[", "", "]")
print(False)
Porównaj wynik i prześledź mechanizm
None jest wartością, a nie niezdefiniowaną nazwą. Zero i pusty tekst mogą być prawidłowymi danymi.
None jest wartością, a nie niezdefiniowaną nazwą. Zero i pusty tekst mogą być prawidłowymi danymi.

Pierwsza linia pokaże None, druga 0. Trzecia pokaże [ ] — dwa odstępy dodane przez print między argumentami, ale żadnych znaków pustego napisu. Ostatnia linia to False.

Wynik kontrolny dla danych z przykładu. Wpisane odpowiedzi użytkownika nie są tutaj powtarzane:

None
0
[  ]
False
Stan Wartość Interpretacja
Przed rundą None Wynik nieustalony
Po rundzie bez punktów 0 Znany wynik
Pusty podpis "" Tekst bez znaków
Gra niezakończona False Odpowiedź logiczna
Model do prześledzenia: porównaj każdy etap z kodem. Etykiety opisują znaczenie danych, nie tylko ich wygląd.

Zmień działający program

Pokaż typ wartości None oraz typ napisu "None". Zwróć uwagę, że cudzysłowy zmieniają znaczenie.

Pierwsza wskazówka

Zachowaj działający punkt wyjścia. Zlokalizuj konstrukcję wskazaną w poleceniu i zmień tylko ten etap. Przed uruchomieniem zapisz oczekiwany efekt.

Porównaj swoją modyfikację
print(type(None))
print(type("None"))

Wynik kontrolny dla danych z przykładu. Wpisane odpowiedzi użytkownika nie są tutaj powtarzane:

<class 'NoneType'>
<class 'str'>

Znajdź przyczynę problemu

Celowo błędny przykład diagnostyczny. Najpierw postaw hipotezę. Nie kopiuj tej wersji jako poprawnego rozwiązania.

Zamierzone działanie: Zapisz rzeczywisty brak wyniku, nie napis.

score = "None"
print(type(score))
Trop do diagnozy

Porównaj zamierzony rezultat z typami, nazwami i kolejnością instrukcji. Wskaż pierwsze miejsce, w którym zachowanie odbiega od celu.

Zastosuj w nowej sytuacji

Wskazówka do rozpoczęcia

None jest wartością, a nie niezdefiniowaną nazwą. Zero i pusty tekst mogą być prawidłowymi danymi.

Zacznij od przygotowania danych. Pierwsza instrukcja przykładowego rozwiązania:

answer = None
Rozwiązanie do samodzielnej kontroli
answer = None
comment = ""
votes = 0
consent = False
print(answer)
print(comment)
print(votes)
print(consent)

Wynik kontrolny dla danych z przykładu. Wpisane odpowiedzi użytkownika nie są tutaj powtarzane:

None

0
False

Porównaj dane wejściowe, wynik i powód użycia konstrukcji. Inna wersja kodu jest poprawna, jeśli realizuje te same wymagania.

Co zabierasz do kolejnego programu?

None jest wartością, a nie niezdefiniowaną nazwą. Zero i pusty tekst mogą być prawidłowymi danymi.

Bez zaglądania do przykładu wyjaśnij własnymi słowami, jak główna konstrukcja prowadzi od danych do wyniku. Potem sprawdź wyjaśnienie, uruchamiając swój program.