Space Python Ładowanie Pythona…

Porządki w zgłoszeniach

Napisz kodŚredni 2 etapy

Formularz zgłoszeń do następnej misji analogowej, dwóch tygodni w zamkniętym habitacie, został zamknięty, a lista to bałagan: imiona wielkimi literami albo z podwójnymi spacjami, e-maile z przypadkowymi spacjami, osoby, które zgłosiły się dwa razy, wpis zupełnie bez imienia.

Uporządkuj ją w listę załogi, z której skorzysta komisja rekrutacyjna, i powiedz dokładnie, co odrzucono i dlaczego.

Napisz clean_name(name), która przycina imię i nazwisko, łączy słowa pojedynczymi spacjami i zaczyna każde słowo wielką literą, oraz clean_email(email), która przycina e-mail i zamienia go na małe litery. Wypisz każde zgłoszenie po oczyszczeniu:

Anna Kowalska <anna.kowalska@example.org>
Kenji Tanaka <k.tanaka@example.org>
Chioma Okafor <chioma.okafor@example.org>
Anna Kowalska <anna.kowalska@example.org>
Olena Bondarenko-Shevchenko <olena.b@example.org>
Priya Sharma <priya.sharma@example>
 <crew@example.org>
Min-Jun Kim <minjun.kim@example.org>
Kenji Tanaka <k.tanaka@example.org>
Tomasz Nowak <tomasz nowak@example.org>

name.split() dzieli po każdym ciągu spacji i pomija końce, więc " ".join(...) składa tekst porządnie z powrotem; title() zaczyna każde słowo wielką literą.

Oczyszczone zgłoszenia
Dwie funkcje czyszczące

Ukończ etap 1, aby odblokować ten etap.

Zbuduj listę załogi. Odrzuć zgłoszenie bez imienia albo z e-mailem, który nie przechodzi valid_email(): dokładnie jedno @, coś przed nim, kropka po nim i bez spacji. Pomiń zgłoszenie, którego e-mail jest już na liście, podając, czyj to adres. Wypisuj każde odrzucenie od razu, a potem załogę:

Odrzucono Anna Kowalska: duplikat Anna Kowalska
Odrzucono Priya Sharma: nieprawidłowy e-mail priya.sharma@example
Odrzucono <crew@example.org>: brak imienia i nazwiska
Odrzucono Kenji Tanaka: duplikat Kenji Tanaka
Odrzucono Tomasz Nowak: nieprawidłowy e-mail tomasz nowak@example.org
Lista załogi: 5 osób
  Anna Kowalska <anna.kowalska@example.org>
  Kenji Tanaka <k.tanaka@example.org>
  Chioma Okafor <chioma.okafor@example.org>
  Olena Bondarenko-Shevchenko <olena.b@example.org>
  Min-Jun Kim <minjun.kim@example.org>

Trzymaj e-maile widziane do tej pory w słowniku email -> name, żeby duplikat mógł powiedzieć, czyj to adres.

Lista załogi
Sprawdzenia
Nie jesteś zalogowany, więc postęp zostaje tylko w tej przeglądarce. Zaloguj się, aby go zapisać i korzystać z podpowiedzi oraz rozwiązań.

Podpowiedzi

Metody stringów - upper, lower, strip

Metody stringów przetwarzają tekst. upper() zmienia na wielkie litery, lower() na małe, strip() usuwa spacje z końców.
metody-stringow-upper-lower.py
# Metody stringów

message = "  Stacja Kosmiczna ISS  "

# Usuwanie spacji z początku i końca
print("Strip:", message.strip())

# Zmiana wielkości liter
command = "przygotować do startu"
print("Wielkie:", command.upper())
print("Małe:", command.lower())
print("Tytuł:", command.title())

# Sprawdzanie zawartości
code = "NASA-2024"
print("Zaczyna się od NASA:", code.startswith("NASA"))
print("Zawiera cyfrę:", any(c.isdigit() for c in code))
Otwórz cały przykład
script.py
PythonWiersz 1, kol. 1Spacje: 4
Ładowanie środowiska Pythona…

Oddziel argumenty przecinkami. Każde uruchomienie przekazuje je jako sys.argv[1:].