W ostatniej lekcji mówilśmy o danych wprowadzanych przez użytkownika, ale nie wyjaśniliśmy, w jaki sposób użytkownik to robi. W Pythonie użytkownik jednorazowo wprowadza jedną linię. Aby uzyskać linię wejściową od użytkownika, należy użyć funkcji . Funkcja input()input() nie zawiera argumentów i zawsze zwraca str (łańcuch).
![]() | Na tej stronie internetowej wszystkie dane wejściowe są wprowadzone przed uruchomieniem programu przez nasz automatyczny tester. Jeśli uruchamiasz interaktywnie Pythona w domue wtedy po poleceniu input() następuje zatrzymanie programu do czasu, aż użytkownik wpisze wiersz tekstu.Ponadto podczas tego typu pracy interaktywnej można skorzystać z faktu, że input() akceptuje opcjonalnie łańcuch, które będzie interpretowany jako monit dla użytkownika, np.
number = input("Wpisz liczbę z zakresu od 0 do 100.") |
Oto przykład użycia input() w celu uzyskania danych wejściowych. Nasz automatyczny tester, zamiast użytkownika, sam określa dane wejście dla programu.
- Przez wielokrotne wywołanie funkcji
input()można uzyskać wiele linii wprowadzania. Pierwsze wywołanieinput() pobiera pierwszą linię, drugie pobiera drugą linię, itd. - Łańcuch otrzymany z
input()może być konwertowany dointlubfloat(podobnie jak w lekcji 4). - Po uruchomieniu programu, przy drugim testowaniu jest podana dodatkowo trzecia linia wejściowa. Nie jest ona jednak czytana, ponieważ
input()jest tylko dwukrotnie wywoływane.
Od tej pory w większości ćwiczeń możesz stosować własne testowe dane wejściowe. Wypróbuj następujący eksperyment: powyżej naciśnij przycisk Wprowadź dane. Pozostaw puste pole. Następnie naciśnij przycisk Uruchom test. Powinien pojawić się błąd.
EOFError: EOF podczas czytania liniiAkronim EOF oznacza skrót od End Of File (koniec pliku). Ta wiadomość dosłownie oznacza, że program wywołał
input(), ale nie otrzymał do odczytu żadnych danych wejściowych.
- Zwykle w naszych lekcjach dane wejściowe są dostarczane przez nasz automatyczny tester, więc ten błąd może oznaczać, że twój program zbyt wiele razy wywołuje
input(). - Powyżej, zgodnie z poleceniem pozostawiłeś pole wprowadzania puste i spowodowałeś błąd - nie dostarczyłeś danych wejściowych, więc nawet jedno wywołanie
input()było zbyt dużą ilością wywołańinput().
W następnym ćwiczeniu zostanie wyświetlony prośba o debugowanie programu, który nie działa i należy zmusić go do pracy. Należy zauważyć, że błąd nie jest literówką, ale raczej błędem logicznym: program nie został poprawnie zaprojektowany do wykonania swojej pracy, więc musisz go nieco przerobić.
Możesz kontynuować następną lekcję, która dotyczy .if




