Funkcja Input¶
Program z poprzedniego przykładu działa poprawnie, ale jego wadą jest ograniczenie się tylko do jednej wartości total_secs. Co zrobić, jeśli chcielibyśmy sprawić, by był bardziej uniwersalny. Jednym z udoskonaleń jest umożliwienie użytkownikowi wpisania dowolnej wartości sekund. Program po ich przetworzeniu wyświetliłby pożądany rezultat.
Aby to osiągnać, potrzeba nam sposobu na wprowadzenie danych przez użytkownika. Jak się można spodziewać, Python udostępnia wbudowaną funkcję``input``, która nam to umożliwia.
n = input("Please enter your name: ")
Po wywołaniu funkcji input na ekranie ukazuje się kursor oczekiwania na wprowadzenie ciągu znaków. Użytkownik programu ma możliwość wprowadzenia imienia i zatwierdzenia go przez klawisz return. String ten następnie jest zwracany poprzez funkcję input i przypisany do zmiennej n. Przećwicz ten przykład kilkukrotnie dla różnych sekwencji wejściowych.
Zwróć szczególną uwagę na to, że funkcja input zwraca wartość typu string. Nawet jeśli zażądasz wprowadzenia wieku użytkownika, wynikiem zwrotnym będzie string np. "17". Twoim zadaniem, jako programisty jest przekonwertowanie stringa w liczbę int lub float, przy użyciu funkcji int lub float poznanych wcześniej.
W celu zmodyfikowania naszego porzedniego przykładu, dodamy wyrażenie input, umożliwiające wprowadzenie liczy sekund. Następnie otrzymany string poddamy konwersji do liczby całkowitej. Od tego punktu reszta procesu pozostaje bez zmian. Dopełnieniem przykładu jest wyświetlenie odpowiednich wartości reprezentujących godziny, minuty i sekundy.
Zmienna str_seconds przypisana jest do wartości wprowadzonej przez użytkownika.Jak wcześniej wspomniano, nawet jeśli uzyskane dane są liczbą 7684, ich typ to wciąż string. Kowersja do liczby całkowitej przeprowadzona jest przez funkcję int Jej rezultat przechowywany jest w zmiennej total_secs. Teraz, za każdym razem po uruchomieniu programu możesz podać inną wartość sekund, która zostanie przetworzona.
Sprawdź swoją wiedzę
data-8-1: Jaka wartość jest wyświetlana po wywołaniu poniższego wyrażenia?
n = input("Please enter your age: ")
# user types in 18
print ( type(n) )