5: Wejście

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 input(). Funkcja 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.

Przykład
Echo tekstu
Następny przykład pokazuje:

  • Przez wielokrotne wywołanie funkcji input() można uzyskać wiele linii wprowadzania. Pierwsze wywołanie input() pobiera pierwszą linię, drugie pobiera drugą linię, itd.
  • Łańcuch otrzymany z input() może być konwertowany do int lub float (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.

Przykład
 
Możesz wprowadzić dane dla programu w poniższym polu.

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 linii
Akronim 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ć.

Zadanie na kodowanie : Echo
Napisz program, który czyta jedną linię danych wejściowych i drukuje tę samą linię dwa razy. Na przykład, jeśli wejście jest Echo to, wyjście powinno być:

Echo
Echo
Napraw poniższy program. (lub usuń całość i napisz program od początku.)  Wskazówka
Możesz wprowadzić dane dla programu w poniższym polu.

Możesz kontynuować następną lekcję, która dotyczy if.