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
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 |
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.