Dane wejściowe i konwersje typów

Preview Mode

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

Dane wejściowe i konwersje typów
Required In Progress

Python • kurs podstawowy • lekcja 07

Dane wejściowe i konwersje typów

Program ma policzyć cenę dwóch biletów, ale liczbę podaje człowiek.

Twój cel: Pobierzesz tekst przez input() i jawnie zamienisz go na liczbę do obliczeń.

Napisy, f-stringi i typy liczbowe.

Zbuduj model działania

input() wyświetla pytanie, czeka na Enter i zwraca napis bez końcowego znaku nowej linii. Cyfry wpisane z klawiatury nadal są tekstem.

int() przekształca poprawny tekst liczby całkowitej w int. float() pozwala wczytać np. 2.5. W tych wywołaniach używaj kropki, nie przecinka. int("2.5") nie działa; int nie odczytuje takiego napisu jako liczby całkowitej.

Oddziel pobranie tekstu od konwersji, aby móc sprawdzić oba etapy. Dopiero po konwersji wykonuj działania. Zakładamy na razie poprawne dane. Dla słowa zamiast liczby zobaczysz ValueError; obsługę i ponawianie pytania poznasz w lekcji 30.

Przewidź przed uruchomieniem

W tym przebiegu wpisz kolejno: 2.

text = input("Liczba biletów: ")
count = int(text)
print(text + "1")
print(count + 1)
Porównaj wynik i prześledź mechanizm
Wejście jest tekstem. Konwersja powinna wynikać z rodzaju obliczenia, a nie z wyglądu cyfr.
Wejście jest tekstem. Konwersja powinna wynikać z rodzaju obliczenia, a nie z wyglądu cyfr.

21 oraz 3. text ma wartość "2", więc dodanie "1" łączy napisy. count ma wartość 2 typu int, więc + 1 wykonuje dodawanie.

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

Liczba biletów: 21
3
Etap Wartość Typ
input "2" str
int(text) 2 int
count + 1 3 int
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

Zamiast liczby biletów pobierz cenę jednego biletu przez float i oblicz cenę dwóch. Sprawdź wejście 2.5.

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ę
price = float(input("Cena biletu: "))
print(price * 2)

Wejście testowe: 2.5.

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

Cena biletu: 5.0

Znajdź przyczynę problemu

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

Zamierzone działanie: Pobierz liczbę i zwiększ ją o 1.

count = input("Liczba: ")
print(count + 1)
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

Wejście jest tekstem. Konwersja powinna wynikać z rodzaju obliczenia, a nie z wyglądu cyfr.

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

side = float(input("Bok kwadratu: "))
Rozwiązanie do samodzielnej kontroli
side = float(input("Bok kwadratu: "))
print(f"Obwód: {4 * side}")

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

Bok kwadratu: Obwód: 6.0

Wejście testowe: 1.5.

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?

Wejście jest tekstem. Konwersja powinna wynikać z rodzaju obliczenia, a nie z wyglądu cyfr.

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.