Weryfikacja nazwy użytkownika i hasła
Treść zadania
Napisz dwie funkcje:
pobierz_dane()— wczytuje nazwę użytkownika (login) i hasło, po czym zwraca je jako parę(login, haslo).sprawdz_dane(poprawny_login, poprawne_haslo)— w pętli wczytuje kolejne próby logowania (login i hasło), dopóki nie będą identyczne z przekazanymi danymi.
Po każdej nieudanej próbie wypisujeBłędne dane. Spróbuj ponownie., a po udanej —Dane poprawne. Dostęp przyznany.i kończy działanie.
Program najpierw wywołuje pobierz_dane(), aby ustalić poprawne dane, a potem przekazuje je do sprawdz_dane(...).
W tym zadaniu funkcje same wczytują dane (input()), a sprawdz_dane sama wypisuje komunikaty.
Dane wejściowe
- 1. linia: poprawny login
- 2. linia: poprawne hasło
- kolejne linie: próby logowania — po dwie linie na próbę (login, potem hasło)
Dane wyjściowe
Dla każdej nieudanej próby linia:
Błędne dane. Spróbuj ponownie.
a na końcu (po pierwszej udanej próbie) linia:
Dane poprawne. Dostęp przyznany.
Ograniczenia
- Jedna z prób jest poprawna — program nie musi obsługiwać końca danych bez udanej próby.
Uwagi
- Próba jest udana tylko wtedy, gdy zgadzają się oba pola: login i hasło.
- Porównanie uwzględnia wielkość liter (
Adminto nie to samo coadmin).
Przykład
admin 1234 root pass admin 1234
Błędne dane. Spróbuj ponownie. Dane poprawne. Dostęp przyznany.
Poprawne dane to admin / 1234. Pierwsza próba (root / pass) jest błędna, druga — poprawna.
Potrzebujesz teorii?
Zasady obowiązujące w rozdziale 6
Zadania w tym rozdziale uczą pisania funkcji: definiowania ich instrukcją def, przekazywania argumentów i zwracania wyniku instrukcją return.
Konwencje wspólne:
- Każde zadanie (i każdy podpunkt a, b, c…) to osobny program: czyta standardowe wejście i wypisuje wynik na standardowe wyjście.
- Treść mówi, jaką funkcję napisać (nazwa, parametry, zwracana wartość). Program wczytuje dane, wywołuje funkcję i wypisuje zwrócony przez nią wynik.
- „Funkcja zwraca” oznacza użycie instrukcji
return. Funkcja nie wczytuje danych i nie wypisuje wyniku sama — robi to reszta programu (chyba że treść zadania mówi inaczej). - Sekcja „Kod startowy” zawiera gotowy szkielet: nagłówek funkcji oraz linie, które wczytują dane i wypisują wynik. Wystarczy uzupełnić ciało funkcji.
- Liczby na wejściu podane są w osobnych liniach — wczytuj je dokładnie w podanej kolejności.
- Program nie wypisuje komunikatów typu „Podaj liczbę:”.
Zadanie pochodzi z otwartego zbioru Nauka-Programowania (z rozwiązaniami wzorcowymi). Zgłoś błąd w treści lub testach.
Przywrócono Twój zapisany kod.
Python uruchomi się w przeglądarce przy pierwszym teście.
Kod zapisuje się automatycznie w tej przeglądarce. Tab wstawia wcięcie; aby opuścić edytor klawiaturą, naciśnij Esc, a potem Tab.
Testy
Program dostaje „Wejście” przez input() i musi wypisać „Oczekiwane wyjście”. Liczby porównywane są z tolerancją 0,01, a tekst podany w input("…") nie jest sprawdzany.
Test 1
Nie uruchomionouser pass user pass
Dane poprawne. Dostęp przyznany.
Test 2
Nie uruchomionoalice qwerty alice 123 Alice qwerty alice qwerty
Błędne dane. Spróbuj ponownie. Błędne dane. Spróbuj ponownie. Dane poprawne. Dostęp przyznany.
Test 3
Nie uruchomionojan kot kot jan jan kot
Błędne dane. Spróbuj ponownie. Dane poprawne. Dostęp przyznany.
Test 4
Nie uruchomionoola haslo1 ola haslo ola haslo2 ola HASLO1 ola haslo1
Błędne dane. Spróbuj ponownie. Błędne dane. Spróbuj ponownie. Błędne dane. Spróbuj ponownie. Dane poprawne. Dostęp przyznany.