Przez lukasz 26 lipca, 2020 w Kurs Python'a dla początkujących

Python – bezpłatny kurs dla początkujących #3, Pobieranie danych wejściowych i konwersja typów

Hej! Dzisiaj nauczymy się jak możemy pobierać dane od użytkownika w trakcie działania programu oraz jak możemy konwertować wartości zmiennych do innych typów, co okaże się całkiem przydatne.

Dzięki temu nasze programy staną się interaktywne! Będzie super i będzie dosyć łatwo 😉 Zaczynajmy!

Pobieranie danych wejściowych użytkownika z klawiatury

Wartości naszych zmiennych możemy ustawiać przed uruchomieniem naszego programu – tak jak na poprzedniej lekcji lub możemy poprosić Użytkownika, aby je wpisał w trakcie jego działania. Aby to zrobić, należy wpisać = input() obok nazwy naszej zmiennej. W środku nawiasu możemy dodać opis, który będzie mówił o tym, czego oczekujemy od Użytkownika, jednak jest on zupełnie opcjonalny.

welcome_message = 'Hello'

# here we ask a user for an input
# whatever he writes will be saved
# in variable 'user_name'
user_name = input('Your name: ')

# here we just print the value
# from the variables above
print(f'{welcome_message} my dear {user_name}!')
# Result: Hello my dear John!

Teraz wystarczy uruchomić nasz program:

oraz wpisać w terminalu wybraną wartość. W przypadku zaprezentowanego na screenie programu należy wpisać dowolne imię i kliknąć 'Enter’. Gotowe!

Nasz program zareagował na to, co wpisaliśmy w trakcie jego działania! 🙂

Konwersja typów

Za każdym razem pobierając wartość korzystając z input(), jest ona domyślnie stringiem– czyli zapisywana w cudzysłowie i traktowana jako zwykły tekst – nieważne czy wpiszesz sam tekst, liczbę czy boolean’a.

Jest to ok, ale czasami chcemy pobrać dane liczbowe na przykład wzrost, wagę czy cokolwiek innego. Skoro nasza zmienna domyślnie będzie stringiem, to będziemy mogli wykonywać na niej operacje dla stringów, a nie dla liczb. Czyli nie wykonamy, żadnych potęg, dzieleń itd. Aby się upewnić, możemy sprawdzić każdą zmienną jakiego jest typu, aby to zrobić piszemy type(), a w nawiasie powinna być nazwa zmiennej.

year = 2020
age = input('Your age: ')

print(year)
print(type(year))
# result: class 'int'=""

print(age)
print(type(age))
# result: class 'str'=""

Mimo, że wpisałem 50, to moja faktyczna wartość w zmiennej to ’50’. Teraz gdybym chciał wykonać jakieś działania na liczbach, nie będzie to możliwe.

age = input('Your age: ')

# I just want to add 10
# to any age I write
print(age + 10)

Czas to poprawić. Aby zamienić stringa na integera, używamy funkcji int() , zaś aby zamienić integera na stringa używamy funkcji str().

# we convert str to int
age = int(input('Your age: '))

# I just want to add 10
# to any age I write
print(age + 10)

Możesz dodać do siebie zmienne o takich samych typach, ale jeżeli chcesz dodać do siebie różne typy otrzymasz informację o błędzie. Zobacz jeszcze kilka przykładów.

# note is a string, not an int
# we only have actions available for strings
# for example we can take the first
# letter/digit
year = '2020'

print(year[0])
# result: 2

# it works because we can add together
# two strings but we can't add
# different types
print(year + ' year!')
# result: 2020 year!

# we can convert it and add something
# from now on this variable will be an int
year = int(year) + 123

print(year)
# result: 2143

Ćwiczenie

Poćwicz i wykonaj następujące programy:

  • program który będzie przeliczał stopnie Celsjusza na stopnie Kelvin’a. Czyli Użytkownik wpisuje w terminalu liczbę, na podstawie której obliczysz stopnie Kelvin’a i wynik wypisz korzystając z funkcji print(). Tutaj wzór do zamiany: K = °C + 273.15,
  • program który będzie obliczał datę urodzenia osoby – pobierz wiek osoby, wykonaj niezbędne obliczenia i wypisz rok urodzenia korzystając z funkcji print().

Jeżeli będziesz mieć problem z wykonaniem zadania napisz w komentarzu. Jeżeli uda Ci się je rozwiązać, także pochwal się w komentarzu rezultatem

To dopiero trzecia lekcja, a już zaczynasz pisać interaktywne programy! Super! Świetna robota 🙂

Nie zapomnij polubić stronę na facebooku i zapisać się do newsletter’a aby dostać informację o kolejnych świetnych lekcjach!

Leave a reply

pl_PLPolski