Kurs Python3: Input – pobieranie danych od użytkownika

Python

Pytania dla użytkownika

Poprzednio pisałeś bardzo proste rzeczy drukujące, dość nudne. Teraz będziemy uczyć się, jak pobrać dane od użytkownika. Z początku może to być kłopotliwe, aby zrozumieć jak to działa przedstawię bardzo krótko o co chodzi:

  1. Program przejmuje pewnego rodzaju dane wejściowe od użytkownika.
  2. Zmienia te dane.
  3. Drukuje coś, aby pokazać, co się zmieniło.

Do tej pory drukowaliśmy łańcuchy znaków, ale nie byliśmy wstanie pobrać żadnych danych wejściowych od użytkownika, być może nie wiesz czym są „dane wejściowe”, ale przepisz (nie kopiuj) poniższy kod i przypilnuj dokładności, by był taki sam.

Kod

1. print("Ile masz lat?", end=' ')
2. age = input()
3. print("Ile masz wzrostu?", end=' ')
4. height = input()
5. print("Jaki masz rozmiar buta?", end=' ')
6. shoe_size = input()
7.
8. print(f"Masz {age} lat, {height} wzrostu, oraz Twój rozmiar buta to {shoe_size}.")

Na końcu linii print umieszczam end=′ ′. To informacja dla polecenia print, aby nie kończył znakiem nowej linii i nie przechodzić do następnej.

Wyjście

$ python3.6 ex9.py
Ile masz lat? 30
Ile masz wzrostu? 180
Jaki masz rozmiar buta? 44
Masz 30 lat, 180 wzrostu, oraz Twój rozmiar buta to 44.

Podpowiedzi dla użytkownika

W powyższym kodzie w funkcji input(), wpisywany był znak ( oraz ), czyli nawiasy okrągłe. Podobnie stosowaliśmy nawiasów klamrowych w sformatowanych łańcuchach znaków z dodatkowymi zmiennymi, np. f”{x} {y}”. Funkcja input może również wyświetlić podpowiedzi, aby pokazać użytkownikowi, co ma wpisać. Pomiędzy znakami () wpisujemy tekst, a wygląda to tak:

y = input("Lubisz modliszki? ")

Taki rodzaj zapisu spowoduje wyświetlenie użytkownikowi podpowiedzi „Lubisz modliszki?” i umieszczenie wyniku w zmiennej y. Co oznacza że możemy przepisać nasze poprzednie ćwiczenie jedynie używając funkcji input dla wyświetlenia wszystkich podpowiedzi.

Kod

1. age = input("Ile masz lat? ")
2. height = input("Ile masz wzrostu? ")
3. shoe_size = input("Jaki masz rozmiar buta? ")
4. 
5. print(f"Masz {age} lat, {height} wzrostu, oraz Twój rozmiar buta to {shoe_size}.")

Wyjście

$ python3.6 ex10.py
Ile masz lat? 30
Ile masz wzrostu? 180
Jaki masz rozmiar buta? 44
Masz 30 lat, 180 wzrostu, oraz Twój rozmiar buta to 44.

Aby uzyskać liczbę od użytkownika i wykonać na niej operację arytmetyczną należy go przekonwertować w ten sposób: x = int(input()), co pobierze z input liczbę jako łańcuch znaków, a następnie przekonwertuje go na liczbę całkowitą z pomocą int(). Jest to troszkę bardziej zaawansowane, ale będziemy się o tym uczyć później.
Dodatkowo nie możemy wstawiać surowych wejściowych bezpośrednio w input(), jak np. input(180cm).
Umieśćmy  funkcję input()  bezpośrednio w print(), jak np.

print("Jaki masz kolor oczu?", input())

Dane z input() nie zostają zapisane w zmiennej i działa w troszkę dziwny sposób. Zdebuguj ten przykład i znajdź więcej informacji na ten temat.

Zadania

  1. Poszukaj w internecie więcej informacji o funkcji input w Pythonie.
  2. Znajdź inne sposoby jej zastosowania, oraz wypróbuj je.
  3. Napisz własny „formularz”, by zadać użytkownikowi kilka pytań.
  4. Wpisz w terminalu pydoc input i przeczytaj wyświetlone informacje. Aby wyjść z pydoc wciśnij q, jeśli nie wyświetla się cała strona za pomocą ENTER, przewiniesz stronę.
  5. Używając polecenia pydoc, uzyskaj informacje o funkcjach open, file, os oraz module sys.

Dodaj komentarz